金刚坐飞机问题

来源:互联网 发布:linux ip地址映射域名 编辑:程序博客网 时间:2024/04/27 14:36

优秀书籍

编程之美4.1金刚坐飞机问题

(本文中,N、n、f(n)、i的含义都和书上一样)
现在有一架飞机要起飞,乘客们正准备按机票号码(1,2,3...,N)一次排队登机。突然来了一只大猩猩(金刚)。

他也有机票,但是他插队第一个登上了飞机,然后随意的选择了一个座位坐下了。

根据社会的和谐程度,其他的乘客有两种反应:

(1)乘客们都义愤填膺,“既然金刚同志都不守规矩,为什么我要遵守?”他们也随意的找位置坐下,并且坚决不让座位给其他乘客。
(2)乘客们虽然感到愤怒,但是还是以“和谐”为重,如果自己的位置没有被占领,就赶紧坐下,如果自己的位置已经被别人(或者金刚同志)占了,就随机的选择另一个位置坐下,并开始闭目养神,不再挪动。
问题:在这两种情况下,第i个乘客(出去金刚同志外)做到自己原机票位置的概率分别是多少?

解答:
(1)所有人都随机找位置坐下,问第i个人坐在第i个位置的概率
其实N个人坐N个座位有N!种情况,每一种情况都是等概率的
所以,答案自然是1/N没话说
(2)首先说说题目本身的问题!

我在读完题目之后,第一感觉是哪里不对,说不清楚哪里不对,反正感觉很奇怪。

然后看书上解析的时候,刚看了一点点就感觉不对劲。

我看了好多博客里面的论述,比如:点击打开链接

这篇博客的主人就提到,难道它认为金刚的正确位置是1吗?

还有很多博客都质疑书上写的有问题。

后来我找到一篇写的很不错的:点击打开链接

这篇博客的主人也认为题目叙述的不对,和我的想法一模一样。

他对题目进行重新论述:

飞机上有N个座位,座位编号依次为1,2,..N。恰好有N个乘客排队登机,第1个乘客的座位编号是1,第2个乘客的座位编号是2,...,第N个乘客的座位编号是N。每个乘客都应该坐在编号正确的座位上。但是,第1个乘客是不讲道理的金刚,他第一个进入飞机,随便(随机)挑了一个座位坐下。其他乘客敢怒不敢言,只好依次找座位坐下。如果自己的座位没有被占,则坐自己的座位,否则,也像金刚那样随便挑一个座位。

现在,求第i个乘客(第1个乘客还是金刚)坐到自己座位的概率是多少?

我觉得这就是书上的题目的原意,只不过不知道为什么书上写的偏差有点大。

之所以说这就是原意,是因为书上的解析完完全全就是这个题目的解答,这个题目是很清晰的,而书上的题目我读第一遍的时候就感觉根本读不通。

顺便一提,书上267页第11行“将n=2代入”应该改成“将n=i-1代入”


下面我给出我的问题:

第2个人,第3个人......第k个人(1<k<=N)都在自己的位置上的概率是多少?

为了求出这个,首先考虑,金刚坐到自己座位的概率是多少?

解答:金刚可以在N个座位里面随机选择1个,所以选到1号座位的概率是1/N

然后,第2个人,第3个人......第k个人都在自己的座位上的条件下,金刚坐到自己座位的概率是多少?

解答:这是一个条件概率的问题。

如果金刚的位置在2-k之间,第2个人,第3个人......第k个人就不可能都在自己的座位上

如果金刚的位置不在2-k之间,那么第2个人,第3个人......第k个人就一定都在自己的座位上

所以要求的条件概率是1/(N-k+1)

最后,第2个人,第3个人......第k个人都在自己位置上的概率是,1/N/(1/(N-k+1))=N-k+1/N

可惜的是,用这个结论并不能直接求出原题的答案。

0 0
原创粉丝点击