概述
小森在公交站等车,有三路公交车均可乘坐到达目的地。A 公交车到站的时间为 0 到 10 分钟内的任一时间点,且服从 [0, 10] 的均匀分布。同样地,B 公交车到站的时间为 0 到 20 分钟内的任一时间点,C 公交车到站的时间为 0 到 30 分钟内的任一时间点。求问小森的平均等车时间?
1. 只有两辆公交车的情况
三辆公交车分析起来比较复杂,我们可以试着先考虑只有两辆公交车的情况,弄明白了这种情况下的平均等车时间,我们自然而然就很容易推广到三辆公交车的情形。
设公交车 A 到站的时间为随机变量 X X X,那么 X X X 的取值范围为 [0, 10],其概率密度函数为:
f X ( x ) = 1 10 , 0 ⩽ x ⩽ 10 f_X(x)=frac{1}{10}, quad 0 leqslant x leqslant 10 fX(x)=101,0⩽x⩽10
同理,设公交车 B 到站的时间为随机变量 Y Y Y,那么 Y Y Y 的取值范围为 [0, 20],其概率密度函数为:
f Y ( y ) = 1 20 , 0 ⩽ y ⩽ 20 f_Y(y)=frac{1}{20}, quad 0 leqslant y leqslant 20 fY(y)=201,0⩽y⩽20
小森的等待时间为随机变量 S S S,易知 S = m i n ( X , Y ) S=min(X, Y) S=min(X,Y),也即等待时间为公交车内 A、B 到站时间的较小者。其概率密度函数则为:
f S ( s ) = { 1 10 , s = m i n ( x , y ) = x → x ⩽ y 1 20 , s = m i n ( x , y ) = y → x > y f_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)=x→x⩽y201,s=min(x,y)=y→x>y
平均等待时间即为 S S S 的期望,
E [ S ] = ∫ f S ( s ) s d s = ∫ 0 10 1 20 ( ∫ 0 y 1 10 x d x ) d y + ∫ 10 20 1 20 ( ∫ 0 10 1 10 x d x ) d y + ∫ 0 10 1 10 ( ∫ 0 x 1 20 y d y ) d x E[S] = int f_S(s)sds = int_0^{10}frac{1}{20}Big(int_0^{y}frac{1}{10}xdxBig) dy + int_{10}^{20}frac{1}{20}Big(int_0^{10}frac{1}{10}xdxBig) dy+ int_0^{10}frac{1}{10}Big(int_0^{x}frac{1}{20}ydyBig) dx E[S]=∫fS(s)sds=∫010201(∫0y101xdx)dy+∫1020201(∫010101xdx)dy+∫010101(∫0x201ydy)dx
上式前两项代表 x ⩽ y x leqslant y x⩽y 的情况,最后一项代表 x > y x > y x>y 的情况。
也可以写成下面这样的形式,
E [ S ] = ∫ f S ( s ) s d s = ∫ 0 10 1 10 ( ∫ 0 x 1 20 y d y + ∫ x 20 1 20 x d y ) d x E[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}xdyBig) dx E[S]=∫fS(s)sds=∫010101(∫0x201ydy+∫x20201xdy)dx
外层积分代表 X X X 是 [0, 10] 上的均匀分布,内层积分的第一部分代表 x > y x > y x>y 的情况,第二部分代表 x ⩽ y x leqslant y x⩽y 的情况。
最后求得 E [ X ] = 25 6 ≈ 4.1667 E[X]=frac{25}{6}approx4.1667 E[X]=625≈4.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,其到站的时间为随机变量 Z Z Z,那么 Z Z Z 的取值范围为 [0, 30],其概率密度函数为:
f Z ( z ) = 1 30 , 0 ⩽ x ⩽ 30 f_Z(z)=frac{1}{30}, quad 0 leqslant x leqslant 30 fZ(z)=301,0⩽x⩽30
则 S = m i n ( X , Y , Z ) S=min(X, Y, Z) S=min(X,Y,Z),也即等待时间为公交车内 A、B、C 到站时间的较小者。其概率密度函数则为:
f S ( s ) = { 1 10 , s = m i n ( x , y , z ) = x 1 20 , s = m i n ( x , y , z ) = y 1 30 , s = m i n ( x , y , z ) = z f_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
平均等待时间即为 S S S 的期望,
E [ S ] = ∫ f S ( s ) s d s = ∫ 0 10 1 10 ( ∫ 0 x 1 20 [ ∫ 0 y 1 30 z d z + ∫ y 30 1 30 y d z ] d y + ∫ x 20 1 20 [ ∫ 0 x 1 30 z d z + ∫ x 30 1 30 x d z ] d y ) d x E[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}ydzBig] dy + int_x^{20}frac{1}{20} Big[int_0^{x}frac{1}{30}zdz+int_x^{30}frac{1}{30}xdzBig] dyBig) dx E[S]=∫fS(s)sds=∫010101(∫0x201[∫0y301zdz+∫y30301ydz]dy+∫x20201[∫0x301zdz+∫x30301xdz]dy)dx
最外层积分代表 X X X 是 [0, 10] 上的均匀分布,中间层积分代表 Y Y Y 是 [0, 20] 上的均匀分布,最内层四部分分别代表 x > y & & y > z x > y space&&space y > z x>y && y>z、 x > y & & y < z x > y space&&space y < z x>y && y<z、 x < y & & x > z x < y space&&space x > z x<y && x>z 和 x < y & & x < z x < y space&&space x < z x<y && x<z四种情况。
最后求得 E [ X ] = 3.75 E[X]=3.75 E[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」!
最后
以上就是欢喜鲜花为你收集整理的均匀分布的公交站等车问题的全部内容,希望文章能够帮你解决均匀分布的公交站等车问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复