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.