不考虑两个样本间的水平差异,平均来讲,是 10 个人赛跑第 1 名更厉害一些。
这道数学题,其实等价于:100 个人里随机抽取 10 个人,他们中的第 1 名,在 100 个人中的平均排名,是在第 10 名以前,还是第 10 名以后?
对于这个问题,直接用各个名次的概率分布算期望值,大概会比较麻烦,我现在在地铁上,也算不出来。
但我想到一种「奇妙」的解法:
设有 100 个球要排序,我先取出 10 个球排成一排,然后把剩下的 90 个球随机塞在最左、最右或者任意两个球之间。
最初 10 个球之间的缝隙,算上最左、最右,共有 11 个。所以平均来讲,每个缝隙会塞 90/11 个球。
于是,最初 10 个球中最左边的那个球(也就是第 1 名),平均最终会排在 101/11 的位置上。
这个数大约是 9.18,是小于 10 的。
因此,10 个人中的第 1 名,平均来讲,要比 100 个人中的第 10 名要好一些。用那个「奇妙」的算法容易算得,它的平均水平,应该等同于 109 个人中的第 10 名,或者,更一般化地说,是在足够多人参加比赛时的前 1/11。
~~~~~
进阶:那么,「各个名次的概率分布」可以算嘛?可以的。
简单的排列组合问题。100 选 10,总共组合数: 。
如果 10 人中的第 1 名排在 100 人中的第 k 名,那么说明其他 9 个人都在第 k+1 名及以后。
于是满足条件的组合数为:
故所求的排名期望:
这个公式看起来不好算,其实用 Excel 可以简单完成:
最终得到的结果同样是 9.18,这说明之前的算法是正确的。
此外,可以画出各个排名的概率分布和累计概率分布:
可以看到,10 个人中的第 1 名,在 100 个人中排名前 10 的概率是 66.95%,大约是 2/3 的样子。中位数是在第 7 名,但是由于长尾,平均排名就变成了 9.18。
这个问题直觉上当然是第一名厉害。而且完全不需要那么复杂。
我们先随机找一百个人赛跑,然后从这一百个人里面抽十个人出来。那么问题马上变成,抽出的这十个人里面有排名前十的概率有多大,这个概率就是第一名比第十名厉害或者打平手的概率。这个概率显而易见的超过了50%,所以十个人赛跑的第一名不输给一百个人赛跑的第十名的概率较大。
推广开来,在N个人比赛中得第一名的人不输给在N*N个人比赛中得第N名的概率较大。
刚写了个程序来验证,首先可以确定的是如果仅仅是验证 十个人赛跑的第一名不输给一百个人赛跑的第十名的概率较大 这一点的话,那么程序已经得出了明确的结论,这个概率已经超过了50%。
其他的结论的证明我还需要想一下怎么改写程序。(塞球的算法似乎在某种程度上也得到了验证,我还需要思考一下如何设计一个程序)。
==============================
稍微花一点儿篇幅讲一下为什么我认为这个概率显而易见的超过了50%,这里面的逻辑非常简单:
因为我知道,对于任何抽奖活动,中奖率为1/n,则抽取n次中奖的概率大于50%。
很符合直觉,但是也要证明一下,首先考虑n=2的情况:
那么中奖概率显然是50%+50%*50%=75%。
n=3的时候就是:
即抽一次不中奖的概率是 ,抽两次是 ,抽三次就是
其实很显然的我们应该可以看出来,当n趋于无穷,这个概率的极限是
然后我们从这个式子也能轻松看出,随着n的增长,概率是下降的,而下降的极限不低于0.6321,所以显然大于50%。
其实也完全没有必要计算出0.6321,因为我们都知道e>2,所以1-1/e必然大于50%。
而这个概率是综合中奖率,等于每次抽取的结果不影响后续抽取的概率,而在100选10这种操作中,后续抽取的概率要高于1/10,换言之,100选10抽取到前10的概率还要高于这个概率,所以显然大于50%。