版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/HuangXinyue1017/article/details/83868322
Time Limits: 1000 ms Memory Limits: 131072 KB
Description
众所周知,DH是一位人生赢家,他不仅能虐暴全场,而且还正在走向人生巅峰;
在巅峰之路上,他碰到了这一题:
每次生成一个[0,n)的随机整数,如果这个随机数和给出的m个数字中的其中一个数字相等,那么就停止生成随机数,否则继续生成,求出所有生成的数的和的期望。
Input
Output
输出一行一个实数表示期望,保留6位小数,
注意了本题没有SPJ,必须和答案完全相同才能通过本题
Sample Input
2 1
1
Sample Output
1.000000
Data Constraint
Hint
Solution
假设在第
次中选中了
个数中的一个
那么答案就是
化简可得
Code
#include<cstdio>
using namespace std;
int n,m;
int main()
{
freopen("winner.in","r",stdin);
freopen("winner.out","w",stdout);
scanf("%d%d",&n,&m);
double ans=(double)(n-1)*(double)n/m*0.5;
printf("%.6lf",ans);
}