问题一:有一班发车间隔时间为20分钟的公交车,问去车站等等公交车的平均时间为多少?
解答:这是一个比较基础的求期望问题。公交车的发车时间满足[0,20]的均匀分布,故期望等车时间为10分钟。
那么如果有多班公交车,情况又会如何呢?即有如下问题:
问题二:有两班公交车,发车间隔时间分别为5分钟和10分钟,等到任意一班公交车均可上车,问此时在公交车站等车的平均时间为多少?
作为一个程序猿,这种期望问题最先想用程序来得到答案╮(╯-╰)╭,采用蒙特卡罗随机实验,代码如下,输出结果为2.083
//问题:有两班车,分别的发车间隔为5分钟和10分钟,求一个人在车站等车的期望时间。
int main(){
double bus1;
double bus2;
double avg=0;
double expTimes=100000;
srand((unsigned)time(NULL)); //播种,每次随机数不同
for(int i=0;i<expTimes;i++){
bus1=10*(rand()/double(RAND_MAX));
bus2=10*(rand()/double(RAND_MAX));
avg+=(min(bus1,bus2)-avg)/(i+1);
}
cout<<avg<<endl;
system("pause");
}
那么如何从数学角度解决该问题呢?
我们知道通过概率密度函数求解期望值:
我们令概率分布函数为在
时间内等到公交车的概率,那么
,
接下来对求导得出概率密度函数
继而求解
最终解为25/12。