FEATURED · 精选文章

传球概率题全解析:从递推关系到马尔科夫链与稳态分布

发布时间 / 2026/9/4 2:04:36
来源 / 创域科博编辑部
栏目 / 资讯中心
传球概率题全解析:从递推关系到马尔科夫链与稳态分布 高中数学里有这样一类常见的概率题几个人传球问经过若干次后球回到某个人的概率。题目表面在考概率实际上考的是两件事——旧状态的概率如何按“权重”流向新状态这种流动又如何写成“递推式”。等概率情况下这类题往往用一个变量、一条递推式就能解决一旦把“等概率”改成“每个人传球偏好不同”权重不再只有 1/2 一个数递推也不再是单个数列而是向量递推和矩阵乘法再往前一步就自然落到马尔科夫链上。下面从一道最小传球题开始把“权重、递推、转移矩阵、稳定分布”这条线索完整拉出来。1. 先看一个两状态最小模型权重是如何进入递推的1.1 从一道等概率三人传球题说起原题可以用这样的形式描述甲、乙、丙三人传球。每次持球者把球传给另外两名同学中的任意一个且选择两人的概率相同。开始时球在甲手中求第 (n) 次传球后球回到甲的概率 (P_n)并求 (n) 很大时的极限。这道题难在“回到甲”不是一次完成而是需要不断追问上一轮球在谁手里。如果从第 (0) 次传球后球在甲出发那么第 (1) 次传球后球一定不在甲但从第 (2) 次开始球可能在甲也可能在乙或丙。于是要讨论的不是某一次固定的组合数而是“概率分布”的演化。这里要区分两个约定第 (0) 次传球后球在甲是指还没有传球第 (n) 次传球后是指已经完成 (n) 次传递。这样递推起点才清楚。1.2 关键把“非甲”看成一个聚合状态三个人传球持球者每次要传给另外两人之一且概率相同因此若当前球在甲下一次球一定不在甲若当前球在乙下一次传给甲的概率是 (\frac{1}{2})若当前球在丙下一次传给甲的概率也是 (\frac{1}{2})。既然乙、丙传给甲的概率相同就可以不区分“球在乙”还是“球在丙”只需要知道“球不在甲”的总概率。设 (P_n) 为第 (n) 次传球后球在甲的概率则第 (n) 次传球后球不在甲的概率是 (1-P_n)。下一步球要回到甲只能从“非甲”状态转移过来转移权重是 (\frac{1}{2})因此[ P_{n1}\frac12(1-P_n),\qquad P_01. ]这个式子就是等高线一样的完整递推。(P_n) 的系数 0 来自“甲到甲”的权重((1-P_n)) 的系数 (\frac12) 来自“非甲到甲”的权重。1.3 解这个递推的两种常用写法这个递推是典型的一阶线性递推先找不动点。设极限为 (L)令 (L\frac12(1-L))解得 (L\frac13)。然后两边同时减去 (\frac13)[ P_{n1}-\frac13-\frac12\left(P_n-\frac13\right). ]因此[ P_n-\frac13(-\frac12)^n\left(P_0-\frac13\right)\frac23(-\frac12)^n. ]最终[ P_n\frac13\frac23\left(-\frac12\right)^n. ]验证几项(n0) 时得到 1(n1) 时得到 0(n2) 时得到 (\frac12)与直接枚举一致。当 (n\to\infty)(P_n\to\frac13)。这说明长期来看球在三个人手中的机会均等。这道题的“权重”藏在系数里(\frac12) 是从非甲状态流向甲状态的权重它不会因为当前是乙还是丙而改变。这也是后面改动条件后问题变难的原因。2. 把传球偏好改成“不均匀”原来的方法为什么会失效2.1 一个新的传球偏好设定现在把规则改一下让每个人给另外两人的概率不相等当前持球者传给甲传给乙传给丙甲0(\frac12)(\frac12)乙(\frac23)0(\frac13)丙(\frac13)(\frac23)0规则仍是不能传给自己但每个人“偏爱”的对象不同。甲对乙、丙公平乙更常传给甲丙更常传给乙。设第 (n) 次传球后球在甲、乙、丙的概率分别是 (a_n,b_n,c_n)。初始 (a_01,b_00,c_00)。如果还像前面那样设 (P_na_n)并且想写 (P_{n1}k(1-P_n))这次做不到了。因为当球不在甲时球可能在乙也可能在丙乙传给甲的概率是 (\frac23)丙传给甲的概率是 (\frac13)两边并不均匀。只知道“不在甲”的总概率是不够的还必须要知道乙、丙之间如何分配。2.2 只保留一维变量会丢失信息原来的等概率问题能够压缩成一维递推本质原因是[ P(\text{非甲} \to \text{甲})\frac12 ]是一个固定值。把它看作一个由两个子状态聚合成的“宏状态”从宏状态到甲的转移概率不需要知道内部细节。而在新设定下[ P(\text{非甲} \to \text{甲}) P(\text{在乙}|\text{非甲})\cdot\frac23 P(\text{在丙}|\text{非甲})\cdot\frac13, ]这个结果依赖乙和丙各自的条件概率。也就是说把乙、丙合并成“非甲”后转移概率不是常数。强行只设一个变量等于人为丢弃了内部结构。正确做法是把三个状态完整保留写成三组递推[ a_{n1}\frac23 b_n\frac13 c_n, ][ b_{n1}\frac12 a_n\frac23 c_n, ][ c_{n1}\frac12 a_n\frac13 b_n. ]每个式子的右侧都是“旧状态概率乘以对应权重”的累加。例如 (a_{n1}) 的只由两部分构成当前在乙并且传给甲概率是 (\frac23 b_n)当前在丙并且传给甲概率是 (\frac13 c_n)。当前在甲时不可能继续留在甲所以没有 (a_n) 项。2.3 手算前几项体会“加权累积”用初始向量开始迭代[ (a_0,b_0,c_0)(1,0,0). ]第 1 次传球后[ (a_1,b_1,c_1)\left(0,\frac12,\frac12\right). ]第 2 次传球后[ a_2\frac23\cdot\frac12\frac13\cdot\frac12\frac12, ][ b_2\frac12\cdot0\frac23\cdot\frac12\frac13, ][ c_2\frac12\cdot0\frac13\cdot\frac12\frac16. ]第 3 次传球后[ a_3\frac23\cdot\frac13\frac13\cdot\frac16\frac{5}{18}, ][ b_3\frac12\cdot\frac12\frac23\cdot\frac16\frac{13}{36}, ][ c_3\frac12\cdot\frac12\frac13\cdot\frac13\frac{13}{36}. ]把前几步列成表格n(a_n)(b_n)(c_n)010010(\frac12)(\frac12)2(\frac12)(\frac13)(\frac16)3(\frac{5}{18})(\frac{13}{36})(\frac{13}{36})每一行的三个数之和都必须是 1这是重要的自检条件。从逐项结果可以看出甲的概率在 0 和 0.5 之间摆动最终应该稳定在某个介于 0.3 附近的数上。3. 用矩阵重写递推状态向量、转移矩阵与稳定权重3.1 把三组递推写成矩阵乘法设状态向量[ v_n \begin{pmatrix} a_n\ b_n\ c_n \end{pmatrix}. ]三组递推可以写成一个式子[ v_{n1}Mv_n, ]其中[ M \begin{pmatrix} 0\frac23\frac13\ \frac120\frac23\ \frac12\frac130 \end{pmatrix}. ]这里要特别注意矩阵的读法。采用列向量左乘矩阵的写法时矩阵的第 (j) 列表示“当前在状态 (j) 时下一步到达各个状态的概率”。以第一列为例[ M\text{ 的第一列} \begin{pmatrix} 0\ \frac12\ \frac12 \end{pmatrix}, ]它的意思就是当前持球者在甲时下一步到甲的概率是 0到乙的概率是 (\frac12)到丙的概率是 (\frac12)。每一列都是非负的并且各列之和都等于 1这样的矩阵称为列随机矩阵。有了矩阵幂之后递推可以直接写成[ v_nM^n v_0. ]每乘一次矩阵就相当于完成一次“按权重分摊概率”的操作。这就是数列递推变成线性代数递推的过程。3.2 长期稳定后的概率满足什么方程如果当 (n) 很大时状态向量趋于稳定把稳定的向量记为[ v \begin{pmatrix} x\ y\ z \end{pmatrix}. ]稳定之后再乘一次矩阵不应该改变向量也就是要满足[ vMv. ]展开就是[ \begin{cases} x\frac23y\frac13z,\ y\frac12x\frac23z,\ z\frac12x\frac13y. \end{cases} ]再加上概率归一化条件[ xyz1. ]这是高中生也能手算的线性方程组。由第一式可得 (4x1y)由第二式可得 (10y4-x)。联立解得[ x\frac{14}{41},\qquad y\frac{15}{41},\qquad z\frac{12}{41}. ]也就是说长期以后球在甲、乙、丙手中的概率分别约为[ 34.1%,\quad 36.6%,\quad 29.3%. ]可以回代递推式验证这个向量即使再乘一次 (M)仍然得到它本身。这样的向量称为这个马尔科夫链的稳态分布也叫稳定分布或不变分布。它不是“某一项概率的极限”这么简单而是整体概率流动达到平衡后的权重。某个状态流入多少概率就恰好流出多少概率。3.3 为什么最后与初始位置无关在这个例题中初始球在甲还是乙最后都会收敛到同一个稳态分布。原因不是“每种可能都被公平对待”而是链本身的结构允许从任意状态经过若干步到达任意其他状态且步长不存在固定周期长期行为会“忘掉”初始位置。这种结论不能无条件套用。如果链条里存在吸收状态比如规则变成了“甲拿到球就不再传出去”那么最终概率会被吸收到甲状态初始位置就会极大地影响结果。高中阶段的概率递推题大多讨论普通转移规则但遇到“某状态一旦进入就出不来”的题要单独判断。4. 补充马尔科夫链的定义并用代码验证稳态4.1 传球过程为什么是马尔科夫链马尔科夫链的核心特点是“无后效性”下一步的结果只与当前状态有关与更早的历史无关。传球问题正好满足这一点。问下一次球会到谁手里只需要知道当前球在甲、乙还是丙不需要知道球在过去三个回合属于谁。于是可以抽象出三个要素状态集合甲、乙、丙转移概率矩阵(M)初始分布开始时球在甲即 ((1,0,0))。只要这三个要素确定整个随机过程就确定了。每次乘矩阵相当于一次状态转移。这是理解马尔科夫链例题的最小框架后面遇到的随机游走、比赛胜负、排队等待等问题通常都沿用同一套“状态加转移矩阵”的模型。4.2 用几行代码计算数值稳定值如果想快速验证手算结果可以用 Python 的 NumPy 做矩阵迭代。下面的代码把上面设计的矩阵复制出来从甲持球开始迭代 20 次import numpy as np M np.array([ [0.0, 2 / 3, 1 / 3], [1 / 2, 0.0, 2 / 3], [1 / 2, 1 / 3, 0.0] ]) v np.array([1.0, 0.0, 0.0]) for n in range(21): print(fn{n:2d}: a{v[0]:.6f}, b{v[1]:.6f}, c{v[2]:.6f}) v M v运行结果会从n 0: a1.000000, b0.000000, c0.000000 n 1: a0.000000, b0.500000, c0.500000 n 2: a0.500000, b0.333333, c
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻