一开始看到了期望吓半死。。然后弱弱的写了一下式子。设∑是出去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 }
原文:http://www.cnblogs.com/ccd2333/p/6731423.html