一个算法问题,100号乘客找到正确座位的概率

这是一个关于概率的问题,描述了一个飞机有100个座位,100个乘客按编号顺序就座。当1号乘客随机坐下后,探讨了第100号乘客坐到自己座位的概率,通过Python代码模拟得出该概率接近0.5。此外,还讨论了当调整座位和乘客数量时,概率的变化情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大一的时候,表哥发给我几个问题,有一个还记得大概内容,但是不记得当时是否解决了,当时没有用程序给实现出来,用数学推的。

突然记起来了,就写点代码试了下,现在记录下。。。

问题描述:

    有一个飞机有100个座位,飞机票被卖给了100个乘客,乘客必须顺序依照自己的编号就坐。如果自己的位置被别人占用了,就随机在剩下的空座位中找一个坐下。正常情况下,就是1号乘客坐1号座位,2号乘客坐2号座位,以此类推。

    可是现在1号乘客是个疯子,他随便找了个座位坐下(不一定是1号座位)。现在问第100号乘客坐到自己座位的概率是多少?

我用 python 写了段代码,打印的结果是接近 0.5。

而且奇怪的发现,当乘客总数=座位总数=1时,这个概率为1,否则,最后一个乘客坐到自己座位的概率都为0.5左右。后来发现这个值的原因应该跟 马尔科夫不等式 有关。

解题思路:

    1. 第100号座位必定会被人坐到,而且是在这100个乘客中的某个人。

    2. 那么所有乘客坐到第100座位的概率之和应该是1.

    依次分析 1号乘客坐到100号座位的概率是 0.01, 2号乘客坐到100号座位的条件是1号乘客占了2号的位子,2号选择了100号座位坐下,概率是(1/100)*(1/99), 3号乘客坐到 100 号座位的条件是前面2个人有人坐了他的位子,他去坐100号座位。否则他就要去坐3号自己的位置。

使用 python3.6的代码实现如下:

   def showList(la):
    print("---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值