金刚

《编程之美》中的一道错题 4.1 金刚坐飞机

断了今生、忘了曾经 提交于 2020-03-27 04:32:09
4.1 金刚坐飞机问题 话说,这道题的解法和答案都是有问题的,我们只看原题: 现在有一班飞机将要起飞,乘客们正准备按机票号码( 1, 2, 3, … N )依次排队登机。突然来了一只大猩猩(对,他叫金刚)。他也有飞机票,但是他插队第一个登上了飞机,然后随意地选了一个座位坐下了 。根据社会的和谐程度,其他的乘客有两种反应: 1. 乘客们都义愤填膺,“既然金刚同志不遵守规定,为什么我要遵守?”他们也随意地找位置坐下,并且坚决不让座给其他乘客。 2. 乘客们虽然感到愤怒,但还是以“和谐”为重,如果自己的位置没有被占领,就赶紧坐下,如果自己的位置已经被别人(或者金刚同志)占了,就随机地选择另一个位置坐下,并开始闭目养神,不再挪动位置。 那么,在这两种情况下,第 i 个乘客(除去金刚同志之外)坐到自己原机票位置的概率分别是多少? (一)先看第一问,我认为作者总结的公式太抽象了,至少能看懂那个公式的人不多。 遇到这样的问题,就是枚举,猜出公式,然后数学归纳法。 假设N=3,即1、2、3。 先来分析第一个人的概率: 如果金刚占了1,概率1/3,那么第1个人永远没机会坐到自己座位,概率为0。 如果金刚不占1(占了2或3)——概率2/3,这种情况下,第1个人可以在1和另一个座位(2或3)中进行选择,概率1/2,即P=2/3 * 1/2 = 1/3。 合计:1/3——这是第一个人坐到自己座位的概率。

《编程之美》读书笔记13: 4.1 金刚坐飞机问题

微笑、不失礼 提交于 2020-03-26 12:36:47
《编程之美》读书笔记13: 4.1 金刚坐飞机问题 问题: 现在有一班飞机将要起飞,乘客们正准备按机票号码( 1, 2, 3, …N)依次排队登机。突然来了一只大猩猩(对,他叫金刚)。他也有飞机票,但是他插队第一个登上了飞机,然后随意地选了一个座位坐下了1。根据社会的和谐程度,其他的乘客有两种反应: 1. 乘客们都义愤填膺,“既然金刚同志不遵守规定,为什么我要遵守?”他们也随意地找位置坐下,并且坚决不让座给其他乘客。 2. 乘客们虽然感到愤怒,但还是以“和谐”为重,如果自己的位置没有被占领,就赶紧坐下,如果自己的位置已经被别人(或者金刚同志)占了,就随机地选择另一个位置坐下,并开始闭目养神,不再挪动位置。 那么,在这两种情况下,第 i 个乘客(除去金刚同志之外)坐到自己原机票位置的概率分别是多少? 设 总座位数为n: 对问题一,每个人都是随机选择座位,任意一个人坐在指定座位的概率相同,因而第i个乘客坐在其座位的概率是 1/n。 对问题二,答案和金刚的原来座位编号有关。不妨先去除金刚的座位,将乘客(根据机票号)和剩下的座位,按原大小顺序从1开始重新编号。 用F(i,n)表示在新排列中(共有n-1个乘客座位和金刚原来的座位),新的第i个乘客坐在其原来座位的概率, 则在n个座位中: ① 金刚若挑自己的座位或选的座位在第i个座位后(共有n-i个座位满足这个条件)

【编程之美】金刚坐飞机问题

拈花ヽ惹草 提交于 2020-01-03 10:48:08
题目描述 现在有一架飞机要起飞,乘客们正准备按机票号码(1,2,3...,N)一次排队登机。突然来了一只大猩猩(金刚)。他也有机票,但是他插队第一个登上了飞机,然后随意的选择了一个座位坐下了。根据社会的和谐程度,其他的乘客有两种反应: 1.乘客们都义愤填膺,“既然金刚同志都不守规矩,为什么我要遵守?”他们也随意的找位置坐下,并且坚决不让座位给其他乘客。 2.乘客们虽然感到愤怒,但是还是以“和谐”为重,如果自己的位置没有被占领,就赶紧坐下,如果自己的位置已经被别人(或者金刚同志)占了,就随机的选择另一个位置坐下,就开始闭目养神,不在挪动。 问题:在这两种情况下,第i个乘客(出去金刚同志外)做到自己原机票位置的概率分别是多少? 问题解答 第一问 :该问题相当于排序问题,总的排序总数是n个人的全排列为N!,如果第i个人做到第i个位置上,那么其余n-1个人的全排列为(N-1)!,综上所求概率为(N-1)!/N!=1/N。 第二问 :《编程之美》讲得比较复杂,没怎么看懂,在网上找了几个博文对该问题的解答,综合一下,这样理解比较容易: 假设: F(i,n)表示在有n个座位的前提下,第i个人恰好做到第i个座位的概率; P(K=j)表示金刚刚好坐在位置j上的概率; P(i|K=j)表示在金刚做到位置j的前提下,第i个人恰好做到第i个位置上的概率。 由以上的假设根据全概率公式有: