会抽到自己的那张吗?
周末和一个朋友聊天,说是要去阿里巴巴报道了。听说阿里巴巴的入职培训中有个有趣的游戏。所有学员都要在一张纸条上写下自己的一个短期愿望,投进纸箱中。然后大家各抽一张。抽到别人的愿望后,要想办法帮那个人实现愿望,且不能告诉对方是你抽到了他的愿望。
我突然想,如果抽到自己的愿望怎么办?:D
抽到自己的写的那张的概率是 1/n (n 为人数),这个概率和你先抽后抽无关。当人数很多时,概率自然是很小的,但是整个集体中,至少有一个人抽到自己那张的概率看起来却不小。到底是多少呢?我饶有兴趣的算了一下。
简化一下题目,其实就是把 1-n 个自然数,排成一个数列里,至少有一个数字 i 刚好排到第 i 个位置的概率。
n 个数字的全排列有 n! 种,我们只需要计算出,没有一个数字排在它所在次序位置的排列数。
先定义一个函数 f(n) ,表示把 n-1 个数字排到 n 个位置上,每个数字都不在自己位置上的排列数。
可知 f(2)=1 (把 1 排在两个位置上 , X 1) f(3)=3 (把 1 2 排在三个位置上, X 1 2 ,2 1 X ,2 X 1) ...
再定义一个函数 g(n) ,表示把 n 个数字,排到 n 个位置上,每个数字都不在自己位置的排列数。
可知 g(n+1) = n * f(n) ,这么理解, g(3)=g(1+2) 也就是排 3 个数字时,先把 2 或 3 排到第一个位置。剩下的两个数字中,1 一定不会在自己位置了。另一个数字排到 2 个空位不在自己位置的排列数就是 f(2)
又可以推导出: f(n+1) = g (n) + n * f(n)
这样理解: f(n+1) 可以分成两种情况,一种是空出那个多余的位置,剩下 n 个数字都不在自己位置的排列数即 g(n) ;另一种情况是,从 n 个数字里挑出一个放在多余的位置上,剩下 n-1 个数字去排 n 个空位,这种情况总数为 n 倍的 f(n) 。
两式联立得到 g(n+1) = n * ( g(n-1) + g (n) )
这样,我们就得到了一个递推式。由于已知 g(3) = 2 * f(2) = 2 ;g(4) = 3 * f(3) = 9 ,所以写个程序很容易求出后续数值。
然后来算概率,n 个数时,概率 h(n) = g(n)/n! 。
我用程序计算了前 100 项,发现从第 8 项开始,概率就几乎不变了,稳定在 0.3679 左右。这引起了我的好奇心,然后重新用笔来推导上面的公式。
h(n+1) * (n+1)! = n * ( h(n-1) * (n-1)! + h(n) * n! )
可以得到
和 ( h(n+1) - h (n) ) *(n+1) = h(n-1) - h (n)
我们可以看到, h(n) 这个数列,相邻两项的差是 1/2! , -1/3! , +1/4! ....
因为我们已知,h(2) = g(2) / 2! = 1/2 , h(3) = g(3) / 3! = 1/3
可以得到 h(n) = 1 -1 + 1/2! - 1/3! + 1/4! - 1/5! .... 1/n!
这看起来是什么?哈,正好是 1/e 的麦克劳林展开式 :D 所以 h(n) 当 n 增大时,它会收敛到 1/e = 0.367879 。且收敛速度极快 :D
结论:当 n 较大(n>5) 时,没有一个人抽到自己那张纸条的概率是 1/e = 36.8% 左右。还句话说,至少有一个人抽到自己写的那个愿望的可能性有 63.2% 左右,这种事情还是很容易发生的,无论人多还是人少。这个概率随 n 变化的量很小。
哈,怎么又绕到欧拉数 e上面去了,数学还真是神奇啊。
Comments
Posted by: 周星星 | (26) March 13, 2016 09:09 AM
Posted by: Anonymous | (25) September 11, 2012 12:25 PM
Posted by: 海洋 | (24) April 15, 2012 06:25 PM
Posted by: test | (23) April 23, 2010 03:52 PM
Posted by: hanzi | (22) November 19, 2008 10:21 PM
Posted by: 34 | (21) June 13, 2008 09:16 AM
Posted by: Anonymous | (20) June 7, 2008 03:53 PM
Posted by: 亮 | (19) May 31, 2008 09:19 PM
Posted by: 笑笑和尚 | (18) May 29, 2008 05:17 PM
Posted by: emil | (17) May 28, 2008 11:39 PM
Posted by: Anonymous | (16) May 28, 2008 09:39 PM
Posted by: 红色警戒 | (15) May 28, 2008 02:38 PM
Posted by: chinainvent | (14) May 28, 2008 01:47 PM
Posted by: govo | (13) May 27, 2008 01:24 AM
Posted by: 吴明 | (12) May 26, 2008 11:48 PM
Posted by: dongxie | (11) May 26, 2008 03:03 PM
Posted by: ywchen2000 | (10) May 26, 2008 01:52 PM
Posted by: 开心 | (9) May 26, 2008 11:34 AM
Posted by: Kusk | (8) May 26, 2008 10:55 AM
Posted by: Kusk | (7) May 26, 2008 10:12 AM
Posted by: kevinlynx | (6) May 26, 2008 10:07 AM
Posted by: kevinlynx | (5) May 26, 2008 10:07 AM
Posted by: Dingding | (4) May 26, 2008 09:06 AM
Posted by: srdrm | (3) May 26, 2008 08:32 AM
Posted by: 老黄牛 | (2) May 26, 2008 08:05 AM
Posted by: along | (1) May 26, 2008 12:20 AM