均匀分布的公交站等车问题

本文通过数学模型分析了乘客在不同公交车线路下等待时间的期望值,首先从两路公交车出发,逐步推导至三路,揭示了随机过程中的平均等待时间规律。

小森在公交站等车,有三路公交车均可乘坐到达目的地。A 公交车到站的时间为 0 到 10 分钟内的任一时间点,且服从 [0, 10] 的均匀分布。同样地,B 公交车到站的时间为 0 到 20 分钟内的任一时间点,C 公交车到站的时间为 0 到 30 分钟内的任一时间点。求问小森的平均等车时间?

1. 只有两辆公交车的情况

三辆公交车分析起来比较复杂,我们可以试着先考虑只有两辆公交车的情况,弄明白了这种情况下的平均等车时间,我们自然而然就很容易推广到三辆公交车的情形。

设公交车 A 到站的时间为随机变量 XXX,那么 XXX 的取值范围为 [0, 10],其概率密度函数为:

fX(x)=110,0⩽x⩽10f_X(x)=\frac{1}{10}, \quad 0 \leqslant x \leqslant 10fX(x)=101,0x10

同理,设公交车 B 到站的时间为随机变量 YYY,那么 YYY 的取值范围为 [0, 20],其概率密度函数为:

fY(y)=120,0⩽y⩽20f_Y(y)=\frac{1}{20}, \quad 0 \leqslant y \leqslant 20fY(y)=201,0y20

小森的等待时间为随机变量 SSS,易知 S=min(X,Y)S=min(X, Y)S=min(X,Y),也即等待时间为公交车内 A、B 到站时间的较小者。其概率密度函数则为:

fS(s)={110,s=min(x,y)=x→x⩽y120,s=min(x,y)=y→x>yf_S(s)=\begin{cases} \frac{1}{10}, \quad s = min(x, y)=x \to x \leqslant y \\ \frac{1}{20}, \quad s = min(x, y)=y \to x > y \end{cases}fS(s)={101,s=min(x,y)=xxy201,s=min(x,y)=yx>y

平均等待时间即为 SSS 的期望,

E[S]=∫fS(s)sds=∫010120(∫0y110xdx)dy+∫1020120(∫010110xdx)dy+∫010110(∫0x120ydy)dxE[S] = \int f_S(s)sds = \int_0^{10}\frac{1}{20}\Big(\int_0^{y}\frac{1}{10}xdx\Big) dy + \int_{10}^{20}\frac{1}{20}\Big(\int_0^{10}\frac{1}{10}xdx\Big) dy+ \int_0^{10}\frac{1}{10}\Big(\int_0^{x}\frac{1}{20}ydy\Big) dxE[S]=fS(s)sds=010201(0y101xdx)dy+1020201(010101xdx)dy+010101(0x201ydy)dx

上式前两项代表 x⩽yx \leqslant yxy 的情况,最后一项代表 x>yx > yx>y 的情况。

也可以写成下面这样的形式,

E[S]=∫fS(s)sds=∫010110(∫0x120ydy+∫x20120xdy)dxE[S] = \int f_S(s)sds = \int_0^{10}\frac{1}{10}\Big(\int_0^{x}\frac{1}{20}ydy + \int_{x}^{20}\frac{1}{20}xdy\Big) dxE[S]=fS(s)sds=010101(0x201ydy+x20201xdy)dx

外层积分代表 XXX 是 [0, 10] 上的均匀分布,内层积分的第一部分代表 x>yx > yx>y 的情况,第二部分代表 x⩽yx \leqslant yxy 的情况。

最后求得 E[X]=256≈4.1667E[X]=\frac{25}{6}\approx4.1667E[X]=6254.1667,也即小森的平均等车时间为 4.1667 分钟。

import numpy as np

sample_num = 1000000
a = np.random.uniform(0, 10, sample_num) # 生成一个 [0, 10] 的均匀分布
b = np.random.uniform(0, 20, sample_num) # 生成一个 [0, 20] 的均匀分布

for i in range(a.shape[0]):
    a[i] = min(a[i], b[i])

print(np.mean(a)) # 期望值,4.167499895337278

用程序随机生成数据验证后,也可得到近似的值。

2. 三辆公交车的情况

如果再增加一辆公交车 C,其到站的时间为随机变量 ZZZ,那么 ZZZ 的取值范围为 [0, 30],其概率密度函数为:

fZ(z)=130,0⩽x⩽30f_Z(z)=\frac{1}{30}, \quad 0 \leqslant x \leqslant 30fZ(z)=301,0x30

S=min(X,Y,Z)S=min(X, Y, Z)S=min(X,Y,Z),也即等待时间为公交车内 A、B、C 到站时间的较小者。其概率密度函数则为:

fS(s)={110,s=min(x,y,z)=x120,s=min(x,y,z)=y130,s=min(x,y,z)=zf_S(s)=\begin{cases} \frac{1}{10}, \quad s = min(x, y, z)=x\\ \frac{1}{20}, \quad s = min(x, y, z)=y \\ \frac{1}{30}, \quad s = min(x, y, z)=z \end{cases}fS(s)=101,s=min(x,y,z)=x201,s=min(x,y,z)=y301,s=min(x,y,z)=z

平均等待时间即为 SSS 的期望,

E[S]=∫fS(s)sds=∫010110(∫0x120[∫0y130zdz+∫y30130ydz]dy+∫x20120[∫0x130zdz+∫x30130xdz]dy)dxE[S] = \int f_S(s)sds = \int_0^{10}\frac{1}{10}\Big(\int_0^{x}\frac{1}{20} \Big[\int_0^{y}\frac{1}{30}zdz+\int_y^{30}\frac{1}{30}ydz\Big] dy + \int_x^{20}\frac{1}{20} \Big[\int_0^{x}\frac{1}{30}zdz+\int_x^{30}\frac{1}{30}xdz\Big] dy\Big) dxE[S]=fS(s)sds=010101(0x201[0y301zdz+y30301ydz]dy+x20201[0x301zdz+x30301xdz]dy)dx

最外层积分代表 XXX 是 [0, 10] 上的均匀分布,中间层积分代表 YYY 是 [0, 20] 上的均匀分布,最内层四部分分别代表 x&gt;y &amp;&amp; y&gt;zx &gt; y \space\&amp;\&amp;\space y &gt; zx>y && y>zx&gt;y &amp;&amp; y&lt;zx &gt; y \space\&amp;\&amp;\space y &lt; zx>y && y<zx&lt;y &amp;&amp; x&gt;zx &lt; y \space\&amp;\&amp;\space x &gt; zx<y && x>zx&lt;y &amp;&amp; x&lt;zx &lt; y \space\&amp;\&amp;\space x &lt; zx<y && x<z四种情况。

最后求得 E[X]=3.75E[X]=3.75E[X]=3.75,也即小森的平均等车时间为 3.75 分钟。

import numpy as np

sample_num = 1000000
a = np.random.uniform(0, 10, sample_num) # 生成一个 [0, 10] 的均匀分布
b = np.random.uniform(0, 20, sample_num) # 生成一个 [0, 20] 的均匀分布
c = np.random.uniform(0, 30, sample_num) # 生成一个 [0, 30] 的均匀分布

for i in range(a.shape[0]):
    a[i] = min(a[i], b[i])
    a[i] = min(a[i], c[i])

print(np.mean(a)) # 期望值,3.748124747694317

用程序随机生成数据验证后,也可得到近似的值。

获取更多精彩,请关注「seniusen」!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值