SSU 495. Kids and Prizes(简单概率)

http://acm.sgu.ru/problem.php?contest=0&problem=495
给出n个prize,m个人选,同一个prize可重复选,问最终送出去的prize数量的期望
分析:相对误差不超过1e-9,即输出%.10lf即可,不用像例子那样非得把小数点后的0去掉。不过话说回来自己学习了去掉它的方法:输出%g,但是是有误差的。
#include <iostream>
#include <cstdio>
using namespace std;
const int N=1e5+10;
double dp[N];
int main()
{
    int n,m;
    while(cin>>n>>m){
         dp[1]=1;
         for(int i=2;i<=m;i++){
            dp[i]=dp[i-1]+(n-dp[i-1])/n;
         }
         printf("%.10lf\n",dp[m]);
    }
    return 0;
}

另一种写法:每一个prize不被选中的概率:
那么结果就是:

你可能感兴趣的:(数学)