zoj3696Alien's Organ (二项分布,泊松分布求近似值)

/*二项分布即重复n次的伯努利试验,每次发生的概率一样,假设成功的概率是p,那么失败的概率就是1-p;
二项分布的概率公式:试验中发生K次的概率是
P(ξ=K)= C(n,k) * p^k * (1-p)^(n-k), 其中C(n, k) = n!/(k! * (n-k)!)
因为这里的数据,k最大为100,100的阶乘超过了int64位,所以不能用这个公式,这时候可以用泊松分布的概率
公式求近似值。
好了接着解释题意:这道题输入n和m,求m是期望,求实验中发生不超过n次的概率,所有所有的概率为0,1,2,3,4...n的概率和
*/
#include
#include
#include
#define e exp(1.0)
int main()
{
int i,j,n,m,k;
int t;
double ok;
scanf("%d",&t);
while(t--)
{
       scanf("%d%lf",&n,&ok);
       double num=1.0/( pow(e,ok) );
       double sum=0;
       for(i=0;i<=n;i++)
       {
           double f=pow(ok,i)*num;
           for(j=1;j<=i;j++)
           f=f/j;
           sum=sum+f;
       }
       printf("%.3lf\n",sum);
}
return 0;

}

lyh走之前还送了一次助攻

你可能感兴趣的:(zoj3696Alien's Organ (二项分布,泊松分布求近似值))