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

 1 /*二项分布即重复n次的伯努利试验,每次发生的概率一样,假设成功的概率是p,那么失败的概率就是1-p;
 2 二项分布的概率公式:试验中发生K次的概率是
 3 P(ξ=K)= C(n,k) * p^k * (1-p)^(n-k), 其中C(n, k) = n!/(k! * (n-k)!)
 4 因为这里的数据,k最大为100,100的阶乘超过了int64位,所以不能用这个公式,这时候可以用泊松分布的概率
 5 公式求近似值。
 6 好了接着解释题意:这道题输入n和m,求m是期望,求实验中发生不超过n次的概率,所有所有的概率为0,1,2,3,4...n的概率和
 7 */
 8 #include<stdio.h>
 9 #include<string.h>
10 #include<math.h>
11 #define e exp(1.0)
12 int main()
13 {
14 int i,j,n,m,k;
15 int t;
16 double ok;
17 scanf("%d",&t);
18 while(t--)
19 {
20        scanf("%d%lf",&n,&ok);
21        double num=1.0/( pow(e,ok) );
22        double sum=0;
23        for(i=0;i<=n;i++)
24        {
25            double f=pow(ok,i)*num;
26            for(j=1;j<=i;j++)
27            f=f/j;
28            sum=sum+f;
29        }
30        printf("%.3lf\n",sum);
31 }
32 return 0;
33 }
34 lyh走之前还送了一次助攻

 

posted on 2013-08-29 10:05  ok_boy  阅读(490)  评论(0编辑  收藏  举报

导航