(来源:图灵人工智能)
有些数学题,规则越简单,陷阱越深。
下面两个小游戏都叫 Pass the Buck。你可以把 buck 理解成一张奖券、一枚筹码,或者一个“谁拿着谁就有可能中奖”的东西。
游戏规则只有一句话:
buck 在谁手上,下一步就从“自己立刻获胜”和“传给某个相邻的人”这些选择里等概率选一个。
也就是说,如果某个玩家有 个邻居,那么他手上拿着 buck 时,有 个等可能选择:
自己留下,游戏结束,自己获胜;
传给第 个邻居;
传给第 个邻居。
现在问题来了:
这个看起来全靠运气的游戏,最后每个人的胜率真的只是“离起点越近越大”这么简单吗?
趣题一:五个人排成一队
五个人站成一条线:
一开始,buck 在玩家 手上。
问:
玩家 最终获胜的概率是多少?
先不要急着算。
很多人的第一反应是:玩家 离起点 有两步远,应该不太大;可是玩家 也靠近右端点,端点比较容易“留住概率”;这两个因素到底谁更强?
这个题有一个漂亮答案,是一个很干净的分数。
趣题二:六个人围成一圈
六个人围成一个环:
一开始,buck 在玩家 手上。
问:
站在对面的玩家 最终获胜的概率是多少?
这个题更容易误判。
因为环上从 到 有两条最短路:
以及
看起来,玩家 被两边“包夹”着,似乎机会不小。但别忘了:buck 每到一个人手里,那个人都有机会直接获胜;所以路越长,中途“被截胡”的机会越多。
那么,玩家 的胜率到底是多少?
这两个题为什么值得想?
这两个问题的有趣之处,不是计算有多复杂,而是它们逼你面对一个很微妙的事实:
一个随机过程,表面上是在时间里一步一步走;
但它真正的概率结构,可能藏在一张图的组合形状里。
如果只用递推或者列方程,当然可以做。
但那样容易把问题看成一堆代数计算。
更好的问题是:
有没有一种方法,能够直接看见“谁的胜率为什么是那个数”?
这两个题背后,其实藏着一个很美的定理:
Markov chain tree theorem。
它说,在某些 Markov chain 里,最终吸收到某个状态的概率,可以转化为某类有向树的计数比例。
换句话说,胜率不是凭空来的。
它等于:
随机游戏的时间过程,最后变成了数树。
这就是这个题真正有味道的地方。
给读者的挑战
你可以先尝试用最朴素的方法做:
设 表示从玩家 手里开始,目标玩家最终获胜的概率。
然后根据游戏规则列方程。
比如在线形图中,中间点满足某种平均关系,端点满足另一种边界关系。
在环形图中,对称性会帮你减少未知数。
但如果你继续追问:
为什么答案里会出现 Fibonacci 数?
为什么路径和环的答案结构那么整齐?
为什么随机过程能被一棵棵有向树控制?
那就已经进入这两个题真正想指向的地方了。
下一篇文章,我们就从这个游戏出发,看一看:
一个人把 buck 传来传去,为什么最后会传出一片森林。