☰
伯努利试验到直线随机游动:从掷币模型到常返性
2026/10/12 18:28:42 网站建设 项目流程

把单一标题“伯努利试验和直线上的随机游动”拆开看,本质上是把一个最基础的概率实验模型,延伸到了空间维度。你抛一枚硬币,正面往右走一步,反面往左走一步,重复n次,最后站在哪里?这背后就是伯努利试验和随机游动的全部故事。这个题目在概率论、随机过程、统计物理、金融工程里都是绕不开的基础模型,很多看似复杂的现象,比如股票价格波动、分子扩散、赌徒输光,底层都在跑同一个“伯努利掷币+位置累加”的逻辑。这篇文章适合正在学概率论的学生、刚入门随机过程的工程师,以及对数学模型背后的现实应用感兴趣的朋友。我会从伯努利试验的核心特征讲起,一路推演到直线随机游动的位置分布、期望方差、常返性这些关键结论,再落地到具体应用场景和易错点,尽量让没有数学基础的人也能跟着走一遍,同时给有基础的人一些新的理解角度。

1. 伯努利试验:整个概率论的骨架

1.1 成功的概率p不一定是0.5

很多人一提到伯努利试验,脑子里立刻跳出“抛硬币”,然后顺手默认正反面各1/2。这其实把伯努利试验想窄了。伯努利试验的定义只有三条:每次试验只有两个结果、各次试验相互独立、每次结果发生的概率保持不变。至于这两类结果是不是五五开,完全不重要。p可以是0.3、0.7、0.99,只要另一个结果概率是1-p就行。

我经常用一个生活化的例子帮新手建立直觉:你每天早高峰挤地铁,赌“这一趟车能不能挤上去”。能挤上去算成功,概率p;挤不上去算失败,概率1-p。连续一周,每天都是一次独立的伯努利试验。这时p显然不是1/2,可能是0.2,也可能是0.8,完全取决于站台位置和你的体重。关键是这七天里,每一天的成功概率都不变、互不影响,哪怕周一你运气好挤上去了,周二这一趟会不会让你上的概率还是p,不会因为你昨天成功了一次就提高或降低。

这一点在建模时极其重要。生活中真正的“无记忆性”很少见,但伯努利试验要求的就是这种严格独立。比如你写代码判断一个接口请求是否成功,如果网络不稳定,上一次超时可能影响下一次的重试策略,那就不能直接用伯努利试验建模,得换马尔可夫链之类的模型。反过来,像抽奖活动中每一次抽奖是否中奖,只要规则设计成“每抽一次独立判定”,那它的底层就是伯努利试验。

1.2 独立性的判断标准:条件概率不随历史改变

独立性是伯努利试验里最容易被忽略、也最容易被误用的条件。我见过很多初学者一道题做错,不是公式推导出错,而是把“独立”理解成了“只要两次试验看起来没关系就行”。

严格地说,设事件A表示第1次试验成功,事件B表示第2次试验成功,独立性要求P(A|B)=P(A)且P(B|A)=P(B)。你可以把这句话翻译成大白话:知道了前面几次的结果,并不会改变你对下一次结果的预测概率。这个“知道了也不改变”,才是独立的核心判别标准。

举个例子,从一副完整的扑克牌里连续抽两张牌,每次抽完不放回。第一次抽到红心的概率是13/52,如果在知道第一次已经抽到红心的条件下,第二次再抽到红心的概率就变成12/51,跟13/52不一样。这不独立,所以不能当伯努利试验处理。如果每次抽完都把牌放回去重新洗,那每次抽到红心的概率都固定在13/52,才构成伯努利试验序列。我见过不少人在现实数据集里想当然地假设独立,结果模型跑出来全是偏差,根源就出在这。

1.3 n次伯努利试验:二项分布自然出现

把n次独立的伯努利试验放到一起,数一数总共成功了多少次,这个总次数S服从二项分布。之所以叫二项分布,是因为它的概率质量函数里藏着二项式系数:

P(S = k) = C(n, k) * p^k * (1-p)^(n-k)

这里C(n, k)表示从n次试验里挑出k次成功的所有组合方式数。这个公式在随机游动推导中会频繁出现,所以建议把它理解到位,而不只是背下来。

我讲这个公式时常用“路线图”来类比。假设你从家出发去公司,中途要经过n个路口,每个路口有两个选择:向右走记为成功,向左走记为失败。你恰好向右转了k次、向左转了n-k次,最终走到的位置只取决于“向右次数减去向左次数”。但是期间这k次右转发生在哪些路口,会形成不同的路线。C(n, k)数的是路线数量,而每种具体路线的概率都相同,都是p^k(1-p)^(n-k)。这个视角在后续推导直线随机游动时可以直接平移过去。

关于期望和方差,二项分布有两个常用结论:均值为np,方差为np(1-p)。如果你需要快速为项目做一个粗略估算,这两个公式就是第一手工具。比如抽奖中奖率p=0.1,抽100次,平均能中10次,标准差约3次。有人会问为什么要关注方差,因为均值只告诉你长期水平,方差才告诉你波动范围。

2. 直线上的随机游动:把时间轴换成空间轴

2.1 从抛硬币到走步:一步一映射

直线上的随机游动是伯努利试验最直接的空间化版本。想象一条数轴,初始位置在原点0。每一步都以概率p向右移动一个单位长度,以概率q=1-p向左移动一个单位长度。走了n步之后,你所在的位置就是一个随机变量。

我们定义第i步的步子,向右记为+1,向左记为-1。那么第i步的取值X_i就是一个随机变量,且P(X_i=+1)=p,P(X_i=-1)=q。走了n步后的位置Y_n就是这些步子的累加:

Y_n = X_1 + X_2 + ... + X_n

这就是伯努利试验和随机游动的连接点。前者是“每次试验的结果”,后者是“把每次试验的结果当作反映在空间上的位移”。如果你把时间轴当作数轴,把“成功”对应时间上向前走到下一个时刻,那么其实也是一种“游动”,只是我们通常在时间维度上把它叫做“计数过程”。直线上的随机游动等于把抽象的时间序列投影到真实空间坐标上,这两个视角各有各的用途。

2.2 位置公式:为什么最后站在2k-n

如果n步之中向右走了k步,向左走了n-k步,那么最终位置是:

Y_n = k - (n-k) = 2k - n

这个式子很清楚:向右的步数是k,向左的步数是n-k,两者相减就是净位移。k的取值范围是0到n之间的整数,所以Y_n只能取与n同奇偶的值。比如n=3时,可能的终点是-3、-1、1、3,不会有0或者2这样的偶数,因为奇数步中左右步数之差必然是奇数。

结合二项分布的公式,随机游动在n步后处于某个位置的概率可以写出来:如果终点位置是y,那么k=(n+y)/2,所以

P(Y_n = y) = C(n, (n+y)/2) * p^((n+y)/2) * q^((n-y)/2)

前提是(n+y)为偶数且k落在0到n之间,否则该位置根本不可能到达。这个公式是整个直线随机游动里最核心的计算入口,很多进阶问题比如“首次回到原点的时间分布”“穿越边界的概率”,最终都会绕回这个式子。

我在实际写模拟代码时,最初容易达到的位置是先经过若干步再逐渐“展开”。我强烈建议新手自己画一张“位置-步数”的树状图:从原点出发,第1步到±1,第2步从1可以到0或2,从-1可以到0或-2。这样你会直观看到游动的路径不断分叉,而且同一个位置可以从不同路径到达。这个“多条路径到同一位置”的现象,正好对应组合数C(n,k)的意义。

2.3 期望和方差:平均位置与波动半径

对直线随机游动来说,两个最基本的统计量就是位置期望和方差。每步的期望位移是:

E[X_i] = p * 1 + q * (-1) = p - q = 2p - 1

所以n步后的平均位置是:

E[Y_n] = n * (2p - 1)

如果p=0.5,也就是对称随机游动,那平均位置一直在原点附近晃动;如果p>0.5,平均位置以每步2p-1的速度向右漂移。这个“漂移速度”在金融里很常见,正的漂移项就是把随机波动叠加在趋势线上。

再看方差。每一步的X_i其实可以看作伯努利随机变量的线性变换。我们先算X_i的方差:X_i取值+1和-1,所以E[X_i^2]=p1+q1=1,那Var(X_i)=1-(p-q)^2=1-(2p-1)^2=4pq。由于各步独立,总方差直接相加:

Var(Y_n) = 4npq

这个式子很有用。它告诉你,不论p往哪边偏,只要p不是0或1,方差都会随步数n线性增大。等意味着随机游动的“活动范围”半径大约是2√(npq)。如果你把n放大到10000步,标准差大约是200√(pq),不是10000量级,而是只有10000的平方根量级。这个“标准差随步数开根号增长”的规律,和布朗运动的扩散特征完全一致。

需要提醒一句:期望和方差只是位置的一阶矩、二阶矩信息,它们并不能告诉你“从原点出发后到底会不会回到原点”。这就要讲到常返性这个更深层的性质了。很多人在这一步容易误以为期望是0就说明游动保守、迟早回来,实际上期望为0和能否以概率1回来是两码事。

3. 意料之外的结论:常返性、赌徒破产与返回时间

3.1 对称随机游动的常返性

对称随机游动是指p=q=1/2的直线游动。它的期望位置永远是原点,但只凭这一点,你无法判断回到原点的概率。事实上,一维对称随机游动有一个惊人结论:从原点出发,最终会以概率1回到原点。这个性质叫作常返性(recurrence)。

听起来很自然?但实际上很多随机过程都不是常返的。比如三维空间里的对称随机游动,最终回到出发点的概率只有约0.34,有将近三分之二的可能永远回不来。一个人在三维世界里“醉汉式乱走”,最后几乎注定迷失方向,而在一维直线上或者二维平面上(常返性成立)却总是会故地重游。这一点我第一次学的时候觉得特别反直觉,因为一维游动看起来是最容易“跑丢”的,结果它反而是最常返的。

要理解常返性,可以从概率上粗略看。设u_n表示n步后回到原点的概率,那么一维对称游动的u_n约等于C(2n,n)/2^(2n),用斯特林公式近似是约1/√(πn)。这个量虽然随着n增大而趋近于0,但它降得足够慢。把每一步的返回概率求和,得到的是个体量很大的发散级数。而随机游动理论里有一条标准判据:对一维游动,如果这个级数发散,游动就是常返的;如果收敛,就是非常返的。三维空间的返回概率大约是n^(-3/2)量级,求和收敛,所以变成非常返。

这个“降得够不够慢”的对比,你用生活经验理解:在一条没有尽头的长廊上闭眼乱走,你总会逛回起点附近;但在一个巨大的立体迷宫里乱走,多半会离起点越来越远。直线和多维空间的维度差异,在这里决定了质变。

3.2 赌徒破产:有限本金对无限庄家的必然结局

常返性和赌徒破产问题有着直接联系。设想一个赌徒玩公平游戏(每局赢的概率p=1/2,输了同样输1元),他从本金a元开始,庄家资金视为无限。他只要输光就破产,问最终破产概率是多少。

这个问题可以用直线随机游动建模:把赌徒的资金数看成位置,每赌一次资金加1或减1。再设置一个吸收边界0,只要位置到达0就停止。经过标准推导会得到一个让很多人不适的结论:在公平赌局里,有限本金的赌徒最终破产概率是1。就算赌局略微有利,只要庄家资金大得多、游动上限设得极高,破产概率仍然非常接近1。

实际推导中常用的方法叫“首达概率”。设a为当前本金,m为设定的目标盈利,最终先达到m的概率是a/(a+m),先破产到0的概率是m/(a+m)。这说明,如果目标m设得很高,破产概率就接近1。很多人在直觉上觉得“我有50%赢面,人总不能一直输”,但模型给出的答案是:只要时间无限、本金有限,你就几乎是注定输光。这不是玄学,是随机游动的边界吸收性质。

我在教朋友理解这个结论时喜欢用一个快速模拟:你手里有100元,对手有1亿元,公平赌局。写程序玩100万次,大多数情况下你会看到“先破产”发生在“先赚到1亿”之前,而且往往是瞬间的事。高频次赌博放大了方差,放大了破产风险,这个模型是现实赌场里“久赌必输”这一说法的数学基础。

3.3 首次返回时间:期望却无穷大的怪现象

常返性告诉你“几乎必回”,但另一个结论紧接着来了:第一次回到原点所需时间的期望是无穷大。

这个结论非常微妙。假设你从原点出发做对称随机游动,设T为首次回到原点的时刻,那么P(T<∞)=1,但E[T]=+∞。用大白话说:你几乎肯定会回来,但平均等待时间无限长。就像等一趟几乎一定会来的公交车,但平均候车时间无法计算,因为它有很长的“尾巴”。这个尾巴来自“长期不归”的小概率事件:虽然连续几百步绕着远离原点的概率很小,但步数够多时,这些稀少却时间极长的路径把平均值拉爆了。

这个“概率为1但期望无穷”的组合,在严格意义上并不矛盾,却常常让初学者抓狂。我当年也卡了很久,最后是靠画“返回时间分布的幂律衰减”才真正接受。首次返回时间的尾部衰减大约是t^(-3/2)量级,这种幂律意味着极端事件不可忽略。对比之下,指数衰减的随机变量方差有限,期望也有限,那时的“几乎肯定”和“期望有限”就基本等价。能否从“概率为1”直接推到“期望有限”,一定要先看分布的尾部行为,这是随机过程课程里反复强调的核心思维。

4. 现实世界的随机游动:从醉汉、股票到分子扩散

4.1 醉汉走路:最直观的科普模型

“醉汉走路”是随机游动最知名的科普化身:一个醉汉从路灯下出发,每步方向完全随机,他到底能走多远?这个模型的数学答案就是前面讲的方差公式:走了n步后,他距离路灯的典型距离约为√n量级,而不是n。

这一点非常反直觉。你可能会认为,如果每一步有随机性,那么走1000步后可能离起点几百步远。但按照√n规律,1000步后典型距离只有30步左右。原因是每一步的随机方向会大量互相抵消,净位移只按平方根增长。我常在讲座里让大家想象自己在操场上闭眼乱走100步,最后睁眼大概率离出发点只有十步二十步。这个模型对真实运动也有参考:在没有方向感的条件下乱走,难以长距离直线推进,所以野外迷路时如果不用地标纠正,很容易绕圈,始终在原地区域徘徊。

从工程应用角度,这个规律还能用来估算定位误差的累积。比如一个惯性导航系统里,传感器误差如果近似随机游动,那定位误差不是随时间线性增长,而是按时间的平方根增长。这说明误差累积比“线性漂移”温和一些,但依然不可忽略,长时间航行后必须靠外部参考源校正。

4.2 股票价格:随机游走假说及其边界

金融里最著名的随机游动应用,是有效市场假说中对股价的建模。把股票价格取对数后,每一段时间的收益率被当作独立的随机变量,股价的对数就近似于一个带漂移项的随机游动。用更专业的说法叫几何布朗运动,核心形式是:

dS/S = μ dt + σ dW

这里dW就是随机游动在连续时间下的极限,即布朗运动。这个模型解释了为什么股价的长期趋势可以用漂移项μ描述,而短期波动主要由标准差σ主导。我在量化项目里做策略回测时,经常会把“如果收益率序列真的服从随机游动,那我的策略应该不产生超额收益”当作零假设。策略是否有真实alpha,本质上就是在检验收益序列是否偏离了纯随机游动的行为。很多回测里看着很漂亮的收益曲线,只要加上交易成本和滑点,立刻就被打回原形,原因就是它们并没有真正突破随机游动带来的方差壁垒。

但要提醒一句,随机游走假设是简化模型,不是事实。真实的股票收益序列存在波动率聚集、厚尾、短期动量等特征,所以随机游动只适合做第一层近似。金融建模中经常用带跳跃的扩散模型,或者随机波动率模型来修正它。不过这些更复杂的模型,依然以随机游动为起点和参照系。

4.3 分子扩散、遗传漂变与排队系统

物理里的布朗运动是随机游动的连续极限。悬浮在液体中的微小颗粒受到分子碰撞,不断改变运动方向,宏观上看就是随机游动。扩散方程的解和随机游动位置分布高度一致,都是高斯分布逐渐展宽。如果你用拉格朗日视角追踪某颗粒子的微观轨迹,看到的正是大量伯努利式碰撞累计成的位移。所以从统计物理出发,随机游动是连接微观随机性与宏观扩散定律的最佳桥梁。

生物里也有随机游动的身影。遗传漂变描述了等位基因频率在种群中的随机波动:每一代个体从上一代中随机抽取基因,这种抽样误差本身就是一种二项过程。小种群中某个基因的频率路径可以近似为有吸收边界的随机游动,一旦频率到达0或1,就固定下来。这就是为什么小种群更容易丢失遗传多样性。理解了这个,你再看生态保护中的“最小可行种群”概念,本质上是把随机游动的吸收边界问题套在了种群大小上。

排队系统同样可以用随机游动分析。比如银行柜台前排队的队长,每个时间段可能新增一位顾客或减少一位顾客,队长变化就是带边界条件的随机游动。如果服务速率略大于到达速率,队长中位数不会太长,但偶尔也会出现很长的尾巴;如果到达速率高于服务速率,队长就会线性漂移,最终爆掉。这种“边界加漂移”的建模思路,跟赌徒破产问题是同一个数学结构。

5. 学习路上的常见坑与排查技巧

5.1 四个分布家族的辨析

我在带学生和同事讨论时,发现最容易混淆的就是伯努利分布、二项分布、几何分布和负二项分布。它们都来源于重复伯努利试验,但计数对象完全不同。

伯努利分布只管单次试验,取值0或1,就一个参数p。二项分布管的是固定次数n里的成功总数。几何分布管的是“第一次成功前需要试验多少次”,比如连续抽卡直到抽中为止。负二项分布管的是“拿到第r次成功之前的总失败次数”。这四个的家族关系可以记成一张小表:

分布关注问题参数期望
伯努利分布单次试验是否成功pp
二项分布n次试验中成功几次n, pnp
几何分布首次成功需要多少次试验p1/p
负二项分布得到r次成功前失败几次r, pr(1-p)/p

考题里特别爱挖的坑是把“至少一次成功”和“恰好一次成功”混淆。比如n次试验中至少出现一次成功的概率是1-(1-p)^n,而恰好一次成功的概率是C(n,1)p(1-p)^(n-1)。前者随n趋于1,后者先增大后减小。理解两者的区别,你就不会在涉及“至少”的题目中用错公式。

5.2 做题先画状态图,再套公式

直线随机游动的题,我强烈建议先把状态转移图画出来。比如从k点出发,下一步只能到k-1或k+1,转移概率分别是q和p。画完图,很多复杂问题就变成图上的路径计数问题或递推问题。

举一道经典题:从原点出发,p=0.5,问n=4时恰好回到原点两次的概率是多少。如果直接套二项分布容易漏掉“路径顺序”的信息。先画树状图你会发现,4步里回到原点这样的“零净位移”只可能出现在偶数步,而且需要左右步数相等,即k=2。此时位置Y_4=0,这只是一个条件,并不是“恰好两次回到原点”的充分条件。因为路径可以1步回到原点然后再绕出去,也可以前3步从未回原点、只在第4步回到原点。如果你用计算机枚举所有16条路径,再数出满足“恰好两次经过0”的路径数,最后除以16,就能得到答案。这种枚举练习对建立直觉极其有效。

在更进阶的题目里,会用反射原理(反射律)来计算穿越边界的路径数。技巧核心是把一条触及某个边界a的路径关于该边界反射,变成另一条从新起点出发的路径。路径数目的不对称关系,可以直接用来求P(最大位置≥a)。我第一次掌握这个技巧时,觉得它非常巧妙:它把约束在边界上的路径问题转化成无约束路径的计数问题,省掉了大量累加。但前提是路径的每步概率相等,也就是p=q=1/2。如果p不等于q,反射原理要加一个似然比权重,复杂度会上升,那时候建议直接用概率生成函数。

5.3 程序模拟验证:快速检测结论是否可靠

有些随机游动的结论书面推导很绕,但我几乎总是用蒙特卡洛模拟做一次交叉验证。思路简单:把每一步的X_i用随机数生成,按伯努利分布取值+1或-1,累计10000次,观察最终位置分布是否吻合理论公式。

例如要验证n=100时P(Y_n=0)的理论值约等于C(100,50)/2^100,我写一个循环模拟十万条长度为100的路径,统计终点为0的占比,你会发现数值在0.0796附近波动,跟理论值相当接近。模拟的好处是能直观感受到“大数定律下的收敛过程”,坏处则是要注意随机数种子可能带来的偏差。我建议每次至少用不同种子跑三次,如果三次结果都落在理论值的一个标准误差范围内,基本上可以确认推导没有大偏差。

遇到特别反直觉的结论,比如“首次返回时间期望无穷”,靠模拟其实很难直接验证,因为模拟次数再多,你采到的样本总是有限的,样本均值会显得稳定而有限。这时要理解,理论期望是积分意义上的无穷大,样本均值收敛到一个看似有限的值,是因为那些“超长尾巴事件”在有限样本中几乎不被采样到。这个场景也提醒我:程序模拟只是辅助工具,不能替代严格的数学推导。

5.4 从零推导一遍,胜过刷十道题

最后分享一个学习方法上的体会。随机游动这一节内容看似简单,但如果只满足于“记住几个公式”,很快会在后续课程里暴露问题。比如你学到布朗运动时,如果不知道位置分布的方差是怎么一步步从4npq推出来的,就很难接受连续时间的dW项的方差与dt成正比。学到伊藤积分时,你会更需要这种“从离散到连续”的推导敏感度。

我个人最推荐的做法是,合上书本,从伯努利试验的定义开始,自己推导一遍随机游动的期望、方差、特征函数,再试着推导对称随机游动回到原点的概率表达式。前半程可能只需要十几分钟,但这十几分钟能帮你打下扎实的基础。等你重新打开书本对照时,会发现自己漏掉了一些细节,而那些细节往往正是考试或工程建模里真正卡人的地方。我当年踩着“期望为0所以大概率会回来”这个错误直觉走了很久,直到真正动手把返回概率级数的阶数算出来,才把事情想透。现在每当遇到一个看似“显然”的概率结论,我都会条件反射式地问自己一句:这个结论的概率增益是幂律还是指数?如果是幂律,那直觉基本不可靠,必须回到底层公式重新检验。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询