51nod 1765 谷歌的恐龙

一开始看到了期望吓半死。。然后弱弱的写了一下式子。设∑是出去m项之后的和,∑' 是m项的和。

E=(n/m)*(∑'/m)+(n/m)*((n-m)/n)*(∑'/m+∑/(n-m))+(n/m)*((n-m)/n)^2*(∑'/m+2*∑/(n-m))....+(n/m)*((n-m)/n)^i*(∑'/m+i*∑/(n-m))

然后发现又要回到文化课了。。。

把n/m提出来,就是一个等比数列((n-m)/n)^(i-1)和一个等差数列(∑'/m+(i-1)*∑/(n-m))乘起来。

弱弱的错位相消了一下。

最后这个东西是收敛的。最后剩下的就是n*(n-1)/2/m。

然后就没然后了。

一份类似于a+b的代码

1 #include<bits/stdc++.h>
2 using namespace std;
3 int main()
4 {
5     double n,m;
6     scanf("%lf%lf",&n,&m);
7     printf("%.6lf\n",n*(n-1)/2/m);
8     return 0;
9 }

 

posted @ 2017-04-19 06:59  ws_ccd  阅读(193)  评论(0编辑  收藏  举报