评论

收藏

[PHP] 概率论中的反常识

开发技术 开发技术 发布于:2021-12-25 18:38 | 阅读数:569 | 评论:0

一,0概率
学过概率论的都知道,不可能事件的概率为0,但概率为0的不一定是不可能事件。
最简单的比如在线段上随机选一个点,任何一个点都有可能被选中,但被选中的概率都是0

二,双信封悖论
2021年11月,Matrix67的个人网站终于又开了,我从大学到工作,陆陆续续的看了他很多博客,实在是大牛的博客太高深,读起来太需要时间。
(1)在他的​​又一个比较诡异的悖论 | Matrix67: The Aha Moments​​一文中有这么一个问题:
箱子里有两个信封:“一个信封里有1元钱,另一个有10元”有1/2的概率;“一个信封里有10元钱,另一个有100元”有1/4的概率;“一个信封里有100元钱,另一个有1000元”有1/8的概率……也就是说,有1/2^n的概率发生这样的事情,一个信封里有10^(n-1)元钱,另一个信封里有10^n元钱。现在你拿到一个信封,看到了里面有x元钱。给你一次机会换成另外那个信封,问你换不换。
很明显,另外一个信封的收益远高于x,如果按照条件概率来算,另外一个信封的期望是3.4x,那么为什么我们不一开始就选择另外那个信封呢?
(2)在评论中,我找到了这个问题的简化版,即双信封悖论:
给你两个装钱的信封,其中一只信封中的钱是另一只的两倍,选择一个信封,打开,此时,你可以选择拿走手上信封里的钱,或者拿走另一个信封,问你换不换。
很明显,2个问题的本质是一样的,而且双信封悖论不需要考虑条件概率,一个是x,另外一个就有50%的概率是2x,有50%的概率是x/2,结论仍然是换一个信封期望更高。
(3)我又看到一些评论,提到,在打开第一个信封之前,期望是无穷大。
于是我想出一个更简单的版本:
给你两个装钱的信封,两个里面的钱都是大于0的随机数,选择一个信封,打开,此时,你可以选择拿走手上信封里的钱,或者拿走另一个信封,问你换不换。
无论选哪一个,另外一个的期望都是无穷大,所以肯定要换。这个版本其实和前2个的本质也是一样的,但是似乎并不反常识了。
(4)上面的例子似乎更让人确信,总期望是无穷大是个关键。
那么我们把Matrix67的问题做个简单的泛化:
箱子里有两个信封:“一个信封里有1元钱,另一个有k(k是大于1的实数)元”有1/2的概率;“一个信封里有k元钱,另一个有k^2元”有1/4的概率;“一个信封里有k^2元钱,另一个有k^3元”有1/8的概率……也就是说,有1/2^n的概率发生这样的事情,一个信封里有k^(n-1)元钱,另一个信封里有k^n元钱。现在你拿到一个信封,看到了里面有x元钱。给你一次机会换成另外那个信封,问你换不换。
此时,另外一个信封的期望是x/3 * (k+2/k),所以换的条件是k+2/k >=3,即k>=2
而在打开第一封之前,总期望是(1+k)/2 + (k+k^2)/4 + ......,它等于无穷大的条件也是k>=2




关注下面的标签,发现更多相似文章