首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

近年来出现的概率类有关问题的一个总结(一)——傻子上飞机

2012-02-28 
近年来出现的概率类问题的一个总结(一)——傻子上飞机周末无聊,随便写点东西,基本都是原创,如果想参加公司面

近年来出现的概率类问题的一个总结(一)——傻子上飞机
周末无聊,随便写点东西,基本都是原创,如果想参加公司面试不妨看看,这里所选的问题都是一些近年版内比较热点却无统一定论的题,当然,这个“无统一定论”并不是问题本身无定论,而是在表述和理解上出现了偏差,在此我力求以最简洁的语言来表述。

一、傻子上飞机

原题:100个人上飞机,其中第一个人是个傻子,他上飞机后随便做了个位置,后面的人上飞机时,如果位置没被占,就坐自己的位置,否则也随便上个位置。求最后一人上飞机的时候坐在自己位置上的概率。

评论:曾经喧嚣一时,最后大多数人都认可了1/2这个答案,但给出的过程却比较繁琐,大多使用“递归”的思想,不易消化,在此我给出三种方法,供大家拍砖。


1、强归纳法+全概公式

  用P(Bn)表示在有n个人上飞机的情况下最后一人坐在自己位置上的概率,用Ai表示事件傻子上来后坐到了第i个人的位置上
  (1)p(Bn-i+1)=p(Bn|Ai)。2<i<n;
  这个结论有着很通俗的解释,就是傻子如果坐到了第i个人位置上,那么第i个人就成了新的傻子,问题退化成在n-i+1时求解,OK,分析到这就OVER了,该公式登场了:
   
  (2)P(Bn)=sigma(p(Ai)*p(Bn|Ai))

  大名鼎鼎的全概公式,下面是归纳法
  
  (3)n=2时成立,结论显然
  假设n=2到k时结论均成立(强归纳)
  证明n=k+1时成立:

  p(Ai)恒为1/n;
   
  i=1时,p(Bn|A1)=1,i=k+1时,p(Bn|An)=0,其余各项p(Bn|Ai)由强归纳给出1/2

  n个数,第一个数是1,第n个数是0,其余数都是1/2,算术平均是多少不用我算了吧。


2、设A是所有上飞机的不同序列的集合,B={Xn}为最后一人坐在自己位置上的序列集合,C={Yn}为最后一人不坐在自己位置上的序列集合

证明:存在1-1映射f:B->C,满足p(f(x))=p(x)

  B交C=空,B并C=A;

  任取一元素Xi属于B,Xi中一定存在上飞机时“需要选择座位”的人,由Xi的有限性和最小自然数原理,在Xi中,存在“最后一个需要选择座位”的人,不妨设此人编号为k。

  考察C中的一个序列Yi,满足:

  (1),Yi和Xi的前k-1个人上飞机次序相同
  (2),Yi中第k个人直接坐到最后一人的位置上

  易见p(Xi)=p(Yi),且f可逆,命题得证


3、这就比较复杂了,用到的东西比较多,先给个结论:

若有N个人上飞机,则第k个人坐在自己座位上的概率p(k)为:

p(k)=1/N,k=1;
p(k)=(N-k+1)/(N-k+2),k=2..N;

易见k=N时,p=1/2及为原命题

顶的高的话,我来解释这个结论是怎么来的,希望大家支持!

[解决办法]
顶起来
[解决办法]
要顶起来 关注此系列
[解决办法]
帮顶
[解决办法]
牛人 ,我顶你

等你解释
[解决办法]
帮忙顶!

这个问题比较有意思@
[解决办法]
这个问题比较有意思
[解决办法]
标志

好东西

谢谢LZ
[解决办法]
mark
[解决办法]
回帖是一种美德!传说每天回帖即可获得 10 分可用分!回帖是一种美德!传说每天回帖即可获得 10 分可用分!回帖是一种美德!传说每天回帖即可获得 10 分可用分!
[解决办法]
我白痴一下啊:
最后一个人上飞机了,就剩下一个位子,那么这个位子要么是他的要么是不他的。就这俩种情况,我感觉应该没有n/m 是,m-n/m 不是 这种情况吧
我很不专业啊?呵呵
 


[解决办法]
支持一下
[解决办法]
看出来,LZ的数学思维果然不是一般的盖的
[解决办法]
标志 

好东西
[解决办法]
支持一下
[解决办法]
支持
[解决办法]
支持!关注此结论的解释。呵呵。谢谢分享!:)
[解决办法]
1/2
[解决办法]
有没有概率论的普及型读物啊?愿拜读一下!不知有谁知道?
------解决方案--------------------


记号下。
[解决办法]

探讨
有没有概率论的普及型读物啊?愿拜读一下!不知有谁知道?

[解决办法]
探讨
我白痴一下啊:
最后一个人上飞机了,就剩下一个位子,那么这个位子要么是他的要么是不他的。就这俩种情况,我感觉应该没有n/m 是,m-n/m 不是 这种情况吧
我很不专业啊?呵呵

[解决办法]
mark,支持
[解决办法]
探讨
引用:
我白痴一下啊:
最后一个人上飞机了,就剩下一个位子,那么这个位子要么是他的要么是不他的。就这俩种情况,我感觉应该没有n/m 是,m-n/m 不是 这种情况吧
我很不专业啊?呵呵


这个位置要么是自己的,要么是傻子的,不会是别人的

[解决办法]
学习``
等待楼主继续`
[解决办法]
!markit!
[解决办法]
这个以前算过,50%
[解决办法]
http://bbs.gupzs.com/Spread-2829.htm
[解决办法]
总是感觉分析的还不是 很透彻!
[解决办法]
学习ing~
[解决办法]
我一个都没有看懂,郁闷!
[解决办法]
看了分析也不太明白,飞机上的座位数是固定的吗?如果也是100个的话,那么最后一个人上飞机时,只剩下了一个座位,那么只存在两种可能,要么这个座位是他的,要么不是他的,那就是50%的概率了。可是如果飞机上的座位小于或者大于100的时候,就不知道该怎么分析了~
[解决办法]
日了...看不懂....

先收藏...
[解决办法]
探讨
我一个都没有看懂,郁闷!

[解决办法]
探讨
牛人 ,我顶你

等你解释

[解决办法]
mark
[解决办法]
第三个想法是不是用 补集 ?

每个人都会在 他的位置没人做的时候去做应该做的,

哪么我们算他的做正确的概率 时候只要把所有 他的位置被人占了的概率 再被1 减就是了

每个人位置被占的概率 是 

第一个人占 他位置 1/100
第二个人占 要第一个人占了2的位置 且 2占他的位置 是 1/100* (1/99)
第三个人占 要两部分了 a 第一个人占了3 的位置 1/100 b 第二个人占了 3个位置 1/100* (1/99)
。。。。。

类推下 每次都是 之前概率的和


算不下去了,无视我吧
[解决办法]
MARK
[解决办法]
顶起来
我要看方法3
[解决办法]
何必这么复杂?还不如让萨士比亚回答。
[解决办法]
恩 支持一下 这个问题挺有意思的
[解决办法]
55555讨厌数学
[解决办法]
要回去复习概率了。。。
[解决办法]
我顶~
[解决办法]
http://www.dullwolf.cn/chess/
------解决方案--------------------


up
[解决办法]
楼主所做的一切计算都是基于一个隐含条件:100人上飞机且飞机只有100个座位。倘若不是基础此条件,得出的结论明显是错误的。
在基于上叙条件的情况下,这个题目已经变得过于简单。
我在此对此题做一个扩展,若变成N人上飞机,飞机上有M个座位,那么答案又是多少呢?[1<N<=M].
得出的答案是(M-N+1)/(M-N+2)。
结果也很容易证明。不过先不证。
[解决办法]
楼主的证明样式繁多,看似很强大,其实只是把简单问题复杂化。怎么求不规则容器的容积?装满水量一下就行了。
[解决办法]

[解决办法]
关注
[解决办法]
支持!
[解决办法]
看lz解释:
[解决办法]
mark
[解决办法]
mark2
呵呵,有意思的问题;
去思考哈
[解决办法]
顶,牛啊!!
[解决办法]
路过
[解决办法]
起来。。。
[解决办法]
有一种方式,就是计算机模拟,我想,结果可能不一定靠近1/2.当然这个是我直观的猜想.
[解决办法]
好难,基本没看懂~~~~~~~~~~~~````
[解决办法]
顶一下啦.
原题:100个人上飞机,其中第一个人是个傻子,他上飞机后随便做了个位置,后面的人上飞机时
如果傻子正好坐在自己的位置或者做在机长的位置呢? 
哈哈
[解决办法]
曾经很喜欢数学,好久没动过了,现在来看看大家的算法心情还是比较愉快.
大脑是要算法经常来疏通疏通的
[解决办法]
傻人有傻福,争取做新时代的傻子!
[解决办法]
再次学习











挨踢网 【中文IT技术社区】

【主页地址】http://www.aitic.net
【论坛入口】http://www.aitic.net/bbs
我们的目标是:做开源的中文IT技术社区,为IT人提供最好的技术交流平台,发布最全面的IT技术资料!
我们的口号是:让IT人从此不挨踢!
[解决办法]
首先,可以确定一点,当某人(不包括最后一个人)坐上傻子位置的时候,最后一个人肯定可以坐上自己位置。

傻子坐上自己位置的概率是1/n=(n-1)/(n*(n-1))
第二个人坐上傻子位置的概率是((n-2)/n)*(1/(n-1))=(n-2)/(n*(n-1))
第三个人((n-2)/n)*((n-3)/(n-1))*(1/(n-2))=(n-3)/(n*(n-1))
第四个人((n-2)/n)*((n-3)/(n-1))*((n-4)/(n-2))*(1/(n-3))=(n-4)/(n*(n-1))
.
.
.
第n-1个人(n-n+1)/(n*(n-1))

把所有情况相加(1+2+3+...n-1)/(n*(n-1))=1/2




[解决办法]
50%一种是坐到正确位置,一种是没坐到.
[解决办法]
虽然看不懂还是看了~有兴趣学!!
[解决办法]
study
[解决办法]

探讨
楼主所做的一切计算都是基于一个隐含条件:100人上飞机且飞机只有100个座位。倘若不是基础此条件,得出的结论明显是错误的。
在基于上叙条件的情况下,这个题目已经变得过于简单。
我在此对此题做一个扩展,若变成N人上飞机,飞机上有M个座位,那么答案又是多少呢?[1 <N <=M].
得出的答案是(M-N+1)/(M-N+2)。
结果也很容易证明。不过先不证。

[解决办法]
应该是和其他人做到傻子的位置的概率一样的吧
------解决方案--------------------


支持一下
[解决办法]
顶下! 虽说我看得一头雾水。
[解决办法]

探讨
楼主所做的一切计算都是基于一个隐含条件:100人上飞机且飞机只有100个座位。倘若不是基础此条件,得出的结论明显是错误的。
在基于上叙条件的情况下,这个题目已经变得过于简单。
我在此对此题做一个扩展,若变成N人上飞机,飞机上有M个座位,那么答案又是多少呢?[1 <N <=M].
得出的答案是(M-N+1)/(M-N+2)。
结果也很容易证明。不过先不证。

[解决办法]
探讨
回帖是一种美德!传说每天回帖即可获得 10 分可用分!回帖是一种美德!传说每天回帖即可获得 10 分可用分!回帖是一种美德!传说每天回帖即可获得 10 分可用分!

[解决办法]
看来又看,想了又想,哎!还是决定顶一下吧!

[解决办法]
看不太明白,simaga是方法?
[解决办法]
探讨
看不太明白,simaga是方法?

[解决办法]
看到oo才知道
原来帐号可以这么短的。。。
[解决办法]
咳,三种证法一个都看不懂~~~
[解决办法]
MARK
[解决办法]
探讨
引用:
楼主所做的一切计算都是基于一个隐含条件:100人上飞机且飞机只有100个座位。倘若不是基础此条件,得出的结论明显是错误的。
在基于上叙条件的情况下,这个题目已经变得过于简单。
我在此对此题做一个扩展,若变成N人上飞机,飞机上有M个座位,那么答案又是多少呢?[1 <N <=M].
得出的答案是(M-N+1)/(M-N+2)。
结果也很容易证明。不过先不证。

[解决办法]
MARK
[解决办法]
INTEREST
[解决办法]
YOUYISI
[解决办法]
探讨
我白痴一下啊:
最后一个人上飞机了,就剩下一个位子,那么这个位子要么是他的要么是不他的。就这俩种情况,我感觉应该没有n/m 是,m-n/m 不是 这种情况吧
我很不专业啊?呵呵

[解决办法]
我觉得应该用反向推算法,假设总数不是100人
假设2个人,概率1/2毫无疑问
假设3个人,第一个傻子坐对的可能1/3,后面就不存在问题了,也就是概率1/3到手,那么剩下2/3的可能坐错,有1/3可能坐到最后一人位子,也就是还有1/3概率未定,以后归向2人概率1/3*1/2=1/6,这时候就是3人的时候1/3+1/6=1/2概率
假设4个人:1/4+(1-1/4-1/4)*1/2=2/4=1/2
假设5个人:1/5+(1-1/5-1/5)*1/2=1/2
..........
假设100人:1/100+(1-1/100-1/100)*1/2=1/2概率

继续推也同上,一直都是1/2概率

我是这么算的,楼主的理论忒专业,符号也多
老朽我离开学校太久了,看不懂.....
[解决办法]
其实这道题还是挺简单的。
1、先大概算几个数,比如2个人,3个人,4个人的情况,发现都是1/2。然后就把问题丢给数学归纳法而已。再大学时代的离散数学课程中,我是数归的忠实拥趸。因为实在太好用了!
2、如果n-1个人时是1/2,则推n个人的概率。
1)傻子坐了第二个人的座位,概率为1/n。这时,将第二个人和傻子的座位配成一对儿,则本质上第二个人就成了傻子,尽管很无辜吧。所以这个时候最后一个人坐对的概率为1/n*1/2;
2) 如果傻子没做第二个人的座位,概率是n-1/n.则第二个人理所应当的坐自己的座位,则第二个人本质上没参与整个概率行为,可以看作是只有n-1个人的行为,这时最后一个人坐对的概率为n-1/n * 1/2.
3)两种情况相加很容易得出结论:如果n-1的时候是1/2,n的时候依然是1/2。归纳完毕。

10楼的兄弟很有意思,应该是中学时没上过概率课吧(因为大学时代即使上课也未必听课)。这其实是很多人对概率学的误解。听过太多学文的兄弟姐妹类似的言论了,他们对概率的理解就是“土鳖不土鳖,这是个问题?”(选自哈姆雷特)

最后,数归万岁!尽管不是万能的。
[解决办法]
看看
[解决办法]
怪经典的
[解决办法]
楼主没有说飞机上有多少个座位,是不是默认是100个了?
------解决方案--------------------


mark
[解决办法]
markit
[解决办法]

[解决办法]

探讨
其实这道题还是挺简单的。
1、先大概算几个数,比如2个人,3个人,4个人的情况,发现都是1/2。然后就把问题丢给数学归纳法而已。再大学时代的离散数学课程中,我是数归的忠实拥趸。因为实在太好用了!
2、如果n-1个人时是1/2,则推n个人的概率。
1)傻子坐了第二个人的座位,概率为1/n。这时,将第二个人和傻子的座位配成一对儿,则本质上第二个人就成了傻子,尽管很无辜吧。所以这个时候最后一个人坐对的概率为1/n*1/…

[解决办法]
探讨
其实这道题还是挺简单的。
1、先大概算几个数,比如2个人,3个人,4个人的情况,发现都是1/2。然后就把问题丢给数学归纳法而已。再大学时代的离散数学课程中,我是数归的忠实拥趸。因为实在太好用了!
2、如果n-1个人时是1/2,则推n个人的概率。
1)傻子坐了第二个人的座位,概率为1/n。这时,将第二个人和傻子的座位配成一对儿,则本质上第二个人就成了傻子,尽管很无辜吧。所以这个时候最后一个人坐对的概率为1/n*1/…

[解决办法]
BS一遍即可,没有必要帮这种自己不想学习的人 

又是作业,我在某书上看到过,是课后习题。
[解决办法]
第一个就不会。
[解决办法]
真复杂
只会递归
[解决办法]
好东西,别沉了,顶
[解决办法]
先顶下再说~
[解决办法]
探讨
我觉得应该用反向推算法,假设总数不是100人
假设2个人,概率1/2毫无疑问
假设3个人,第一个傻子坐对的可能1/3,后面就不存在问题了,也就是概率1/3到手,那么剩下2/3的可能坐错,有1/3可能坐到最后一人位子,也就是还有1/3概率未定,以后归向2人概率1/3*1/2=1/6,这时候就是3人的时候1/3+1/6=1/2概率
假设4个人:1/4+(1-1/4-1/4)*1/2=2/4=1/2
假设5个人:1/5+(1-1/5-1/5)*1/2=1/2
..........
假设100人:1/100+(1-1/100-1/100)*1…

热点排行