你有若干本金,比如1000吧,对方有两枚硬币,一枚正反两面正常硬币,一枚两面正面硬币。每抛一次扣除1元,若硬币一直出正面,当出若干次正面时你可以选择判断硬币是双正面硬币,如果错误则扣除所有本金。问当硬币出现多少次正面时判断是双正面才能剩最多的钱?
这应该用贝叶斯 (Bayes) 理论来做。
下面的P代表概率。
A代表那枚硬币是正常的,B代表那枚硬币是异常的。
X(k)代表扔了k次全是正面的事件。
P(X(k) | A) = (1/2)^k
P(X(k) | B) = 1
作为博弈论来讲,我们需要假设敌人选取A或B的概率相等,也就是:P(A) = P(B) = 1/2
由全概率公式:
P(X(k)) = P(X(k) | A) * P(A) + P(X(k) | B) * P(B) = (1/2)^(k+1) + (1/2)
由贝叶斯公式:
P(A | X(k)) = P(X(k) | A) * P(A) / P(X(k))
= (1/2)^(k+1) / [(1/2)^(k+1) + (1/2)]
= 1 / (2^k + 1)
P(B | X(k)) = P(X(k) | B) * P(B) / P(X(k))
= (1/2) / [(1/2)^(k+1) + (1/2)]
= (2^k) / (2^k + 1)
对于判断是A还是B来讲,只需看P(A | X(k))和P(B | X(k))哪个大,哪个大就判断是哪个。
显然,P(A | X(k)) < P(B | X(k)),所以永远判断是B。
下面计算失去的本金:
设 k 次正面后,我们判断为 B 型硬币。
我们失去的本金是这样的:
如果原本是 A 型硬币。
对于任意 i (1<=i<=k),如果前 i-1 次是正面,而第 i 次是背面,那么我们就能正确判断出 A。
此时我们失去的本金是:i
如果前 k 次都是正面,那么我们将作出错误判断,失去的本金将是:n
如果原本是 B 型硬币。
那么我们失去的本金是:k
所以,我们失去的本金的期望是:
这个方程只能用数值求解,比如用Matlab:
fzero('2^x - (1000 - x - 2) * log(2) - 1', 1)
得到解是:9.4225
也就是在 9 或 10 取到最小值。
再算算具体的值:
f(9) = 4.4658
f(10) = 4.4824
所以,最优的方法是扔 9 次后判断,失去的本金的期望是:4.4658
还可以用Matlab画张图(点击可放大):
横轴是 k 值(k 从 1 到 100),纵轴是在 k 时结束损失的本金:
追问两点不明白
在求k次全正面概率时,选a的情况为什么用k+1,那不是k+1次正面概率了么?
由全概率公式:
P(X(k)) = P(X(k) | A) * P(A) + P(X(k) | B) * P(B) = (1/2)^(k+1) + (1/2)
可不可以这么理解,若是正常硬币且只能投入一次,我在9次正面后,第10次投入是最好选择?
k 次全正面概率时,是 k 次方,另外一次方是 P(A) 中的 1/2 乘出来的。
判断方法是这样:9次正面后,不再有第10次,直接判断为异常硬币。
抛两枚硬币的试验中,出现一正面一反面的概率是三分之一还是二分之一呢?来看看计算机模拟试验的结果?