ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2019-04-23 12:51:00  阅读:342  来源: 互联网

标签:10 20 int Big 30 均匀分布 frac 公交站 等车


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

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

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

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

\[f_X(x)=\frac{1}{10}, \quad 0 \leqslant x \leqslant 10\]

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

\[f_Y(y)=\frac{1}{20}, \quad 0 \leqslant y \leqslant 20\]

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

\[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}\]

平均等待时间即为 \(S\) 的期望,

\[E[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) dx\]

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

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

\[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}xdy\Big) dx\]

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

最后求得 \(E[X]=\frac{25}{6}\approx4.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\) 的取值范围为 [0, 30],其概率密度函数为:

\[f_Z(z)=\frac{1}{30}, \quad 0 \leqslant x \leqslant 30\]

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

\[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}\]

平均等待时间即为 \(S\) 的期望,

\[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}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) dx\]

最外层积分代表 \(X\) 是 [0, 10] 上的均匀分布,中间层积分代表 \(Y\) 是 [0, 20] 上的均匀分布,最内层四部分分别代表 \(x > y \space\&\&\space y > z\)、\(x > y \space\&\&\space y < z\)、\(x < y \space\&\&\space x > z\) 和 \(x < y \space\&\&\space x < z\)四种情况。

最后求得 \(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」!

标签:10,20,int,Big,30,均匀分布,frac,公交站,等车
来源: https://www.cnblogs.com/seniusen/p/10755702.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有