C++ 中飛機座位分配機率


假設 n 位乘客登上一架僅有 n 個座位的飛機。如果第一位乘客失去了機票,並且隨機挑選了一個座位。但在登機後,其餘的乘客將遵循以下操作 −

  • 如果可能,坐到機票上寫明的自己的座位上

  • 當發現自己的座位已被佔據時,隨機挑選其他座位

因此,我們必須找到第 n 位乘客能夠坐到自己座位的機率。因此,如果輸入為 2,則輸出為 0.5。因此,第二位乘客有 0.5 的機率坐到第二個座位(當第一位乘客坐到第一個座位時)。

為了解決這個問題,我們將遵循以下步驟 −

  • 如果 n 等於 1,則返回 1,否則返回 0.5

示例 (C++)

讓我們參看以下實現,以加深理解 −

class Solution {
public:
   double nthPersonGetsNthSeat(int n) {
      if (n == 1) return 1;
      return 0.5;
   }
};

輸入

2

輸出

0.50000

更新日期:31-Mar-2020

193 次檢視

開啟你的事業

透過完成課程獲得認證

開始
廣告
© . All rights reserved.