您的位置:首页 > 其它

名企笔试:2017网易游戏笔试(赛马)2017-03-27 算法爱好者

2017-04-12 15:23 288 查看
在一条无限长的跑道上,有N匹马在不同的位置上出发开始赛马。当开始赛马比赛后,

所有的马开始以自己的速度一直匀速前进。每匹马的速度都不一样,且全部是同样的均匀随机分布。

在比赛中当某匹马追上了前面的某匹马时,被追上的马就出局。 请问按以上的规则比赛无限长的时间后,

赛道上剩余的马匹数量的数学期望是多少

输入描述:

每个测试输入包含1个测试用例

输入只有一行,一个正整数N

1 <= N <= 1000

输出描述:

输出一个浮点数,精确到小数点后四位数字,表示剩余马匹数量的数学期望

输入例子:

1

2

输出例子:

1.0000

1.5000

算法分析:

考虑每个出发位置不出局的期望。最后一个出发的位置必然不出局,为1。

第一个位置不出局的概率为1/N,只能在速度最快的情况下不出局。

第i个位置不出局,只考虑前i匹马的排列,只要放在第i个位置上的速度最快,前i-1个随机排列,
概率为(i-1)!/i!=1/i。
答案是1+1/2+1/3+...+1/N。

C++源代码:

#include#include using namespace std;int main(){int n, i;float E = 0;cin >> n;for (i = 1;i <= n;i++)E += (1.0 / i);cout << setiosflags(ios::fixed) << setprecision(4);cout << E << endl;return 0;}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐