首先,我们可以把这个问题转化为一个随机漫步(Random Walk)问题。把 A 的钱数看作随机漫步的位置,初始位置是 1,目标位置是 11(因为要把 B 的钱全赢光)。每一步要么向前走一步(A 赢一块钱),要么后退一步(A 输一块钱),前进和后退的概率都是 50%。我们要求的是从位置 1 出发,最终到达位置 11 的概率。
这类问题可以用一个经典的方法来解决,叫做"吸收边界法"。我们把位置 0 和位置 11 看作两个吸收态,一旦到达就不会再离开。设 P(i) 表示从位置 i 出发,最终被位置 11 吸收的概率,那么我们要求的就是 P(1)。
根据概率的性质,P(i) 满足以下关系:
P(0) = 0
P(11) = 1
对于 0 < i < 11,有 P(i) = 0.5 P(i-1) + 0.5 P(i+1)
上面最后一个等式的意思是,如果当前在位置 i,那么下一步要么前进到 i+1,要么后退到 i-1,概率都是 50%,而最终被吸收的概率就是下一步的位置被吸收的概率。
这实际上是一个线性方程组,一共有 11 个未知数 P(0) 到 P(10),其中 P(0) 和 P(11) 已知。我们可以逐步求解,也可以用矩阵方法直接求解。
经过计算,最终得到 P(1) = 1/11 ≈ 0.0909,也就是说 A 把 B 赢光的概率大约是 9.09%。
直观地说,虽然每一局 A 赢和输的概率是一样的,但是 A 的本金比 B 少,所以 A 更容易被赢光。从 1 块钱赢到 11 块钱,需要连续赢 10 次,概率只有 0.5^10 = 1/1024,而 B 只要赢 1 次就可以把 A 赢光,所以 B 取胜的概率要大得多。
这个结果告诉我们,在赌博中,初始资金的多少对结果有很大影响。资金少的一方,即使每一局赢面都是 50%,最终败光的风险也要大得多。这也是赌场为什么有"上限"的原因,就是要防止资金雄厚的赌客通过不断加码最终赢光赌场。
去报个培训班学运维...还能入行,前端和开发至少现在和你没有任何关系,可以先从运维开始干起,后期在转运维开发,云原生开发都可