[转]数轴上的随机游走问题

2023-11-03 23:10
文章标签 问题 随机 游走 数轴

本文主要是介绍[转]数轴上的随机游走问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

数轴原点上有一个点,每步以1/2的概率向左或向右移动1个单位长度(下文称为一步随机游走),由此可以引出许多有趣的问题:

 

随机游走n步后距原点距离的期望

    对这个问题可以分情况讨论:n为奇数或n为偶数。

    当n为奇数时,设n=2k+1,k为非负整数,由于正反方向是对称的,下面考虑这个点坐标为正的情况:设点向正方向上走了n-i步,负方向上走了i步,i=0,1,2,...,k,则走法数显然为C(i,n)。这样所求期望值就等于

数轴上的随机游走问题
    其中左边乘以2是考虑向反方向“对称”移动的情况,C(i,n)/2^n为这个点恰好“正方向上走了n-i步,负方向上走了i步”的概率,n-2i是这个点坐标的绝对值。

    接下来就是一个简单的求值问题了:

数轴上的随机游走问题
    当n为偶数时,设n=2k,k为非负整数,同理可以列出表达式:

数轴上的随机游走问题
    和上面的表达式形式相同:i的取值同样是0,1,2,...,k,当i=k时出现了一点小不同:这个点仍然在原点,按道理不应该乘2,但此时n-2i=0,乘不乘2无所谓,于是就得到一样的式子。化简过程有些差别:

数轴上的随机游走问题

    由此得到通项公式:

数轴上的随机游走问题
    接下来,分析这个函数的数量级:先看右边这一部分

数轴上的随机游走问题
    可以用Stirling公式换掉这里的阶乘(等价无穷大),结果为:

数轴上的随机游走问题
    而k可以换为n/2。于是E_n的近似表达式:

数轴上的随机游走问题
    或者用下面的式子表示:

数轴上的随机游走问题
    由此可以得到,E_n大致与√n成正比。

    很多人试着做“硬币随机抛掷实验”,却发现最后正面次数距总次数的1/2越来越远,其实这并不奇怪:随着抛掷次数n的增加,绝对误差就可以用上面的E_n衡量,显然是越来越大的,但是相对误差大致和n的-1/2次方成正比,随n增大而减小。所以正面次数除以总次数,得到的比值仍然是不断接近1/2的。

 

游走到原点左侧(猫捉老鼠问题)

    若这个点从原点出发,随机游走无穷次,求这个点走到过-1点至少一次的概率(显然这与“走到原点左侧至少一次”是等价的)。或者形象一点:老鼠在-1点处不动,猫从原点随机游走,假设猫可以游走无穷次,若走到-1点老鼠就被捉,求猫捉到老鼠的概率。

    显然,猫如果捉到老鼠,一定是在奇数步后第一次捉到。设第一次捉到老鼠时,猫走了2k+1步,则显然最后一步是从0走到-1,而前2k步是在原点右侧(包括原点)随机游走。这就是说,在每一步走完之后,向右的步数总大于向左的步数。如果按照先后顺序,向右走换为1,向左走换为0,就会得到一个长度为2k的01串,其中有k个0,k个1,到这里可以看出:这种01串的个数就是Catalan数!也就是说,如果串长为2k,则满足要求的串的个数为Catalan数

数轴上的随机游走问题
    这样所求的概率就容易表示出来,它是一个无穷级数:

数轴上的随机游走问题
    求出来它的值就行了。幸运的是,C_k有对应的生成函数:

数轴上的随机游走问题
    于是有

数轴上的随机游走问题
    令x=1,则此式的值就是所求的无穷级数的值,结果为1。也就是说,猫有100%的概率能抓到老鼠。乍一看有些反直觉,猫如果一直向右走,就抓不到老鼠;但是仔细一想就能发现:这跟在全体实数中随机选数道理一样,选到无理数的概率为1,并不代表不会选到有理数。猫抓到老鼠的概率为1,并不代表猫没有可能抓不到老鼠。

 

猫抓老鼠问题中游走步数的期望

    上面已经证明,猫抓到老鼠的概率为1,一定有很多人也感兴趣猫抓到老鼠所用步数的期望。式子容易推出来,它仍然是一个无穷级数:

数轴上的随机游走问题
    继续用生成函数的方法解决:

数轴上的随机游走问题
    当x=1时,这个级数发散,可以认为级数的和为∞。也就是说,猫为了抓到老鼠,平均需要随机游走∞步。这无疑又是一个反直觉的结果。好可怜的喵~~~

这篇关于[转]数轴上的随机游走问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/341524

相关文章

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

SpringBoot启动报错的11个高频问题排查与解决终极指南

《SpringBoot启动报错的11个高频问题排查与解决终极指南》这篇文章主要为大家详细介绍了SpringBoot启动报错的11个高频问题的排查与解决,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一... 目录1. 依赖冲突:NoSuchMethodError 的终极解法2. Bean注入失败:No qu

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作

如何解决mysql出现Incorrect string value for column ‘表项‘ at row 1错误问题

《如何解决mysql出现Incorrectstringvalueforcolumn‘表项‘atrow1错误问题》:本文主要介绍如何解决mysql出现Incorrectstringv... 目录mysql出现Incorrect string value for column ‘表项‘ at row 1错误报错

如何解决Spring MVC中响应乱码问题

《如何解决SpringMVC中响应乱码问题》:本文主要介绍如何解决SpringMVC中响应乱码问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC最新响应中乱码解决方式以前的解决办法这是比较通用的一种方法总结Spring MVC最新响应中乱码解

pip无法安装osgeo失败的问题解决

《pip无法安装osgeo失败的问题解决》本文主要介绍了pip无法安装osgeo失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 进入官方提供的扩展包下载网站寻找版本适配的whl文件注意:要选择cp(python版本)和你py

解决Java中基于GeoTools的Shapefile读取乱码的问题

《解决Java中基于GeoTools的Shapefile读取乱码的问题》本文主要讨论了在使用Java编程语言进行地理信息数据解析时遇到的Shapefile属性信息乱码问题,以及根据不同的编码设置进行属... 目录前言1、Shapefile属性字段编码的情况:一、Shp文件常见的字符集编码1、System编码

Spring MVC使用视图解析的问题解读

《SpringMVC使用视图解析的问题解读》:本文主要介绍SpringMVC使用视图解析的问题解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC使用视图解析1. 会使用视图解析的情况2. 不会使用视图解析的情况总结Spring MVC使用视图

Redis解决缓存击穿问题的两种方法

《Redis解决缓存击穿问题的两种方法》缓存击穿问题也叫热点Key问题,就是⼀个被高并发访问并且缓存重建业务较复杂的key突然失效了,无数的请求访问会在瞬间给数据库带来巨大的冲击,本文给大家介绍了Re... 目录引言解决办法互斥锁(强一致,性能差)逻辑过期(高可用,性能优)设计逻辑过期时间引言缓存击穿:给