勇士将无限次地攻击怪物,怪物被砍中3次就会死,第 k 次攻击的命中率为 2k1,k∈N
那么勇士能杀死这个怪物吗?
攻击无限次,期望总伤害值 E(damage)=k=0∑∞2k1=2<3 确实小于怪物的体力值...
难道这就意味着怪物是不可战胜的吗?
不,不是的,即使一次又一次失败,勇士依然会一次又一次地冲锋,直到杀死怪物为止!
关键在于,我们真正关心的是,是 n 次攻击后,怪物仍未被杀死的概率.
举个例子,在经典的一维随机游走模型中,我们从原点0开始,每一步以相同的概率向左或向右走.
即 {Zn}n∈N 为一系列随机变量, Zn=−1,1 表示向左走或向右走.
Sn=∑k=1nZk 为 n 步之后的位置,那么显然有 E(Sn)=0.
也就是说任意时刻的期望位置都是原点.
但朴素的直觉告诉我们,对于数轴上的任意一个点,在无限游走的过程中迟早会经过该点!
因此 E(Sn)=0 并不意味着 Sn 永远也无法达到1926.
关键在于 Sn 经过1926的概率,而计算可得这个概率是1!
如果随机游走永不停止, Z 上的简单随机游走将会无限次走过每一个点.
这个结果被称为常返(recurrence)或赌徒破产理论.
若一个拥有有限财富的赌徒和一家拥有无限金钱的银行玩“公平游戏”,最终赌徒一定会输掉. 赌徒的钱的数量将经过随机游走的过程,并且在某个时刻达到零,游戏结束.
明白了吗?我们关心的并不是总伤害值的期望,而是 n 次攻击后,怪物仍未被杀死的概率.
那么接下来想必就是愉快的计算了吧?
先忽略必然命中的第0刀,设 {Xn}n∈N∗ 为一系列随机变量
P(Xn=1)=2n1,P(Xn=0)=1−2n1
Sn=k=1∑nXk 表示 n 次攻击后造成的总伤害值. 当 Sn 达到2时怪物就会被杀死.
n 次攻击全部失败的概率为:
P(Sn=0)=k=1∏n(1−2k1)
n 次攻击只有一次命中的概率为:
P(Sn=0)=i=1∑n2i1k=i∏(1−2k1)=i=1∑n2i−11k=1∏n(1−2k1)
那么成功杀死怪物的概率为:
pn=P(Sn≥2)=1−P(Sn=0)−P(Sn=1)=1−(1+k=1∑n2k−11)k=1∏n(1−2k1)
真是令人愉悦啊,只要可以得出当 n→∞ 时 pn→1,就证明了在不限次数的攻击下,勇士迟早会杀死怪物.
那么这两个看起来有点怪怪的式子具体是多少呢?
不妨把 ∏k=1∞(1−2k1) 记作 a
那么常规操作转换为求和
lna=k=1∑∞ln(1−2k1)
由于 −ln(1−x)=∑k=1∞k1xk,0≤x<1
进而有
−lna=k=1∑∞i=1∑∞i2ki1=i=1∑∞i1k=1∑∞2ki1=i=1∑∞i(2i−1)1
遗憾的是这个表达式只能化简到这里了,根据Quora上的分享计算机数值计算结果 ,大致为 −lna≈1.242,a≈0.288. 详细信息可以查阅OEIS A048651 .
另一个式子 似乎更难计算了,根据WolframAlpha的计算结果
k=1∑∞2k−11=1−ln(2)ψ(0)(21)≈1.607
看起来和我们想象的有很大不一样呢
非常遗憾,勇士能击败怪物的概率只有大约 25% ...
所谓的“即使一次又一次失败,勇士依然会一次又一次地冲锋,直到杀死怪物为止”,仅仅是我们一厢情愿的错误直觉(听起来有点残酷...)
如何说服自己从直觉上理解这种无限过程却不能成功的结果呢?
可以参考这样一个理论,一维和二维随机游走,返回原点的概率为1,然而在三维及以上的随机游走对此却不成立. 一个相对直观的角度是,在较高的维度,外面的空间会更加广阔,一旦我们走出一段距离后,会更容易迷失在浩瀚无垠的外界空间中,再也找不到回家的路.
所以,大概就简单地理解为,在一次次徒劳的攻击后,勇士早已忘却了自己的初心,只是麻木的做着挥剑的动作,但其实已经几乎不可能真的对怪物造成损失了...
P.S. 不保证以上计算过程全部正确,但可以确定击败怪物的概率并不是1.