内容会持续更新,有错误的地方欢迎指正,谢谢!
题目
在一条无限长的跑道上,有N匹马在不同的位置上出发开始赛马。当开始赛马比赛后,所有的马开始以自己的速度一直匀速前进。每匹马的速度都不一样,且全部是同样的均匀随机分布。在比赛中当某匹马追上了前面的某匹马时,被追上的马就出局。 请问按以上的规则比赛无限长的时间后,赛道上剩余的马匹数量的数学期望是多少
输入描述:
每个测试输入包含1个测试用例
输入只有一行,一个正整数N
1 <= N <= 1000
输出描述:
输出一个浮点数,精确到小数点后四位数字,表示剩余马匹数量的数学期望
输入例子:
2
输出例子:
1.5000
分析
一道简单的抓通项的题
由于每匹马的速度都不相同,所以有速度:V1>V2>V3…>Vn
V1的马不管在哪里,存活率都为1;V2的马只有在V1的马后才能存活,存活率为1/2;同理,V3的马存活率为1/3。。。Vn的马存活率为1/n
最终存活的马的总数量:1+1/2+1/3+。。。+1/n
代码
#include <iostream>
#include <iomanip>//为了用cout控制输出格式
using namespace std;
int main()
{
int num;
cin>>num;
double sum=0;
for(int i=1;i<=num;++i)
{
sum+=1.0/i;
}
//printf("%.4lf",sum);
cout << fixed << setprecision(4) << sum << endl;
return 0;
}