You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

二维随机游走:从(a,b)出发首次触达y轴时落在正y值的概率计算

二维随机游走首次触达y轴时落在正y值的概率计算

嘿,这个问题其实挺有意思的——我之前也碰到过类似的二维随机游走边界概率问题,刚好可以给你捋清楚思路。首先咱们先明确模型:默认是二维简单对称随机游走,每一步等概率(1/4)向上下左右四个方向挪1个单位,从点(a,b)(a>0,b≠0)出发,要算第一次走到y轴(x=0)时,y坐标为正的概率,我把这个概率记为P(a,b)。

核心思路:用鞅和积分来推导

这个问题没有那种一眼能看明白的初等闭合解,但咱们可以通过构造辅助函数结合傅里叶分析,得到一个积分形式的解,过程其实挺直观的:

1. 先简化问题:引入偏移量函数

你已经意识到当b>0时概率大于1/2,那咱们就把这个“偏移”单独拎出来:令Q(a,b) = P(a,b) - 1/2,这样Q(a,b)就代表概率相对于对称情况(b=0时概率刚好1/2)的偏差。

这时候边界条件就很清晰了:

  • 当a=0时,已经在y轴上了,如果b>0,那概率就是1,所以Q(0,b)=1/2;如果b<0,概率是0,Q(0,b)=-1/2;
  • 当a无限大时,离y轴太远,初始y的影响几乎可以忽略,概率趋近1/2,所以Q(a,b)→0。

2. 递推关系与傅里叶展开

Q(a,b)满足随机游走的递推式:

4Q(x,y) = Q(x+1,y) + Q(x-1,y) + Q(x,y+1) + Q(x,y-1)

意思就是,当前点的偏移量等于四个相邻点偏移量的平均。

接下来利用符号函数的傅里叶级数展开:sign(y) = (2/π)∫₀^∞ (sin(ky)/k) dk,咱们可以假设Q(a,b)是一个积分形式:

Q(a,b) = (1/π)∫₀^∞ [sin(kb)/k] * h(a,k) dk

把这个代入递推式,解出关于h(a,k)的二阶递推方程,再结合边界条件(当a=0时h(0,k)=1,a→∞时h(a,k)→0),就能得到:

h(a,k) = [ (2 - cosk) - √((2 - cosk)² - 1) ]^a

3. 最终的概率表达式

把Q(a,b)代回P(a,b),就得到了最终的公式:

P(a,b) = 1/2 + (1/π)∫₀^∞ [sin(kb)/k] * [ (2 - cosk) - √((2 - cosk)² - 1) ]^a dk

一些直观的特殊情况

  • 当b=0时,积分项里的sin(k*0)=0,所以P(a,0)=1/2,完全符合对称性;
  • 当b>0时,积分项是正的,所以P(a,b)>1/2,和你的直觉完全一致;如果b无限大,这个积分会趋近于1/2,所以P(a,b)→1——毕竟初始位置远在正y方向,几乎不可能走到负y那边再碰y轴;
  • 当a无限大时,[ (2 - cosk) - √((2 - cosk)² - 1) ]这个因子是小于1的(因为2 - cosk ≥1,开根号后减去的部分是正的,所以整体小于1),a次方后趋近于0,积分项消失,P(a,b)→1/2,离y轴越远,初始y的偏移影响就越弱。

怎么算具体数值?

如果需要具体的数值结果,比如你举的(5,5)的例子,直接用数值积分工具就行。比如用Python的scipy.integrate.quad来计算这个积分,结果大概在0.65左右(具体数值得精确计算,但肯定大于0.5)。

如果a很小(比如a=1、2),也可以用递推法:比如a=1时,P(1,b)满足:

P(1,b) = (1/4)*I(b>0) + (1/4)P(2,b) + (1/4)P(1,b+1) + (1/4)P(1,b-1)

这里的I(b>0)是指示函数,b>0时为1,否则为0。你可以设定一个足够大的y范围(比如y从-100到100),假设P(1,100)=1,P(1,-100)=0,然后解线性方程组得到近似解。

内容的提问来源于stack exchange,提问作者rxmnnxfpvg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:47:16