美文网首页
1227. 飞机座位分配概率

1227. 飞机座位分配概率

作者: geaus | 来源:发表于2020-08-27 22:10 被阅读0次

有 n 位乘客即将登机,飞机正好有 n 个座位。第一位乘客的票丢了,他随便选了一个座位坐下。
剩下的乘客将会:
如果他们自己的座位还空着,就坐到自己的座位上,
当他们自己的座位被占用时,随机选择其他座位
第 n 位乘客坐在自己的座位上的概率是多少?

示例 1:

输入:n = 1
输出:1.00000
解释:第一个人只会坐在自己的位置上。
示例 2:

输入: n = 2
输出: 0.50000
解释:在第一个人选好座位坐下后,第二个人坐在自己的座位上的概率是 0.5。

假设1号票丢了, 那么他有三种座位情况:

  1. 1号有1/n的概率坐到1号座位,那么n号乘客坐到自己位置的概率为1;
  2. 1号有1/n的概率坐到n号座位,那么n号乘客坐到自己位置的概率为n;
  3. 1号n-2/n的概率坐到[2, n-1]座位,假设坐到了k号乘客的位置。

下面,k乘客就有对应三种座位情况:

  1. k乘客坐到1号座位
  2. k乘客坐到n号座位
  3. k乘客坐到[2~k-1] [k+1,n-1]。
    如此,其实和n-1个座位[2, n]类似,所以可以递归。
// 递归
double nthPersonGetsNthSeat(int n){
    if(n==1)
        return 1;
     return 1.0/n + (double)(n-2)/n* nthPersonGetsNthSeat(n-1);
}
// 自底向上
double nthPersonGetsNthSeat(int n){
    double[] f = new double[n+1];
    f[1] = 1;
    for(int i=2;i<=n;i++){
         f[i] = 1.0/i + (i-2)/i*f[i-1];
    }
    return f[n];
}

相关文章

  • 1227. 飞机座位分配概率

    有 n 位乘客即将登机,飞机正好有 n 个座位。第一位乘客的票丢了,他随便选了一个座位坐下。剩下的乘客将会:如果他...

  • LeetCode #1227 Airplane Seat Ass

    1227 Airplane Seat Assignment Probability 飞机座位分配概率 Descri...

  • T1127、飞机座位分配概率

    有 n 位乘客即将登机,飞机正好有 n 个座位。第一位乘客的票丢了,他随便选了一个座位坐下。剩下的乘客将会:如果他...

  • Blockly 例子分析

    飞机座位数游戏(/demos/plane/index.html) 计算飞机座位数游戏总共有3关 飞机只有头等舱座位...

  • 飞机上换座位

    几个有关等候航班的单词: gate n. 登机口, 大门 boarding time 登机时间 dep...

  • 2022-03-20

    1 找不到座位 上飞机的时候可能会遇上找不到飞机座位的状况,尤其是当乘坐用于国际长航线的大飞机时,座位会非常密集,...

  • 2022-03-20

    1 找不到座位 上飞机的时候可能会遇上找不到飞机座位的状况,尤其是当乘坐用于国际长航线的大飞机时,座位会非常密集,...

  • 坐飞机怎么选座位

    这次决定去三亚学躺飞课之后,由于时间临近,没有足够的里程用于兑换,就天天搜机票选航班。 买机票也学了不少东西,不仅...

  • 《异能学院》第一篇——“扶手”战争

    “13A的座位吗?应该是靠窗吧”,我看着飞机票,走到属于自己的座位旁。 飞机过道的两侧各有三个座位,而三个座位对应...

  • 精进-毛笔书法117

    给经常坐飞机的人一些小Tips: 1、选飞机优选机龄短的,设施比较新; 2、选座位要看飞机的座位间距,个人建议经济...

网友评论

      本文标题:1227. 飞机座位分配概率

      本文链接:https://www.haomeiwen.com/subject/ibwhsktx.html