前两天中午吃饭,一个同事出了一道很有意思的概率问题,题目是这样的:有一种赌局,庄家拿了两个骰子出来,每次由参赌者随意掷这两个骰子,如果同时掷出两个6,那么庄家输;如果连掷18手,都没有同时掷出两个6来,参赌者输。问这种赌局公平吗?
咋一看,同时掷出两个6来的可能性是:1/6 * 1/6 = 1/36,连掷18次,那么总的概率就是:1/36 * 18 = 1/2,这样看来,此赌局是公平的。
现在我们还一种思路,上面我们考虑的是参赌者赢的概率,现在我们考虑一下庄家赢的概率。因为:参赌者赢的概率 = 1 - 庄家赢的概率。如果庄家要赢,那么也就是说连续18次都没有掷出两个6来,每一次没掷出两个6的概率是:(1 - 1/36),那么连续18次都没掷出来的概率就是:(1 - 1/36) ^ 18,可以把这个式子用麦克劳仑公式展开为:1 - 1/36 * 18 + O() = 1/2 + O() (后面是一个正的高阶无穷小),因此,庄家赢的概率更大一些。
那么怎么解释最先一次计算中的错误呢?倒底是哪儿算错了呢?其实在第一次计算中,犯了一个很隐蔽的问题。我们用1/36 * 18,也就是认为,每次概率都是1/36,其实并不是这样的。考虑一下,为什么我们会掷第二次?是因为第一次没有掷出两个6来,也就是说,如果第二次掷出两个6的概率是1/36,那么第一次的掷出两个6个概率就是0(也即第一次没有可能掷出两个6来,不然就不会再掷第二次了),但是,我们再计算的时候却用的是乘法,也就是说我们认为第二次掷出两个6的概率是1/36时,第一次的概率还是1/36,这就计算多了。
所以,如果我们要按参赌者赢的概率来算的话,那么应当这样计算:参赌者赢的概率 = 第一次掷出两个6来的概率 + 第一次未掷出两个6来而第二次掷出两个6来的概率 + 第一次未掷出来第二次也未掷出来第三次掷出两个6来的概率 + …… = 1/36 + 35/36 * 1/36 + 35/36 * 35/36 * 1/36 + ……
很明显,按庄家赢的概率来算要简单得多。对于一个问题,如果都能从两个方面考虑并比较一下从两方面计算的结果,定能发现其中隐藏着的不少问题。

3 条评论:
1. 1/32 * 18 != 1/2
2. "如果连掷18手,都没有同时掷出两个6来,参赌者输。" 这个的概率是 (31/32)^18=0.5647>1/2,所以,庄家获胜大
错了,被你误导了,是1/36不是1/32
"如果连掷18手,都没有同时掷出两个6来,参赌者输。" 这个的概率是 (35/36)^18=0.602>1/2,所以,庄家获胜大
nod,笔误,应当是1/36,不是1/32,改过来了。不过算法是没错的~~:)
发表评论