⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 poisson.c

📁 泊松分布是一种常用的离散型概率分布
💻 C
字号:
/*【问题描述】

 

泊松分布是一种常用的离散型概率分布,数学期望为m的泊松分布的分布函数定义如下:

P(m, k) = mk * e-m/k!  (k = 0, 1, 2, 3, …)

对于给定的m和k (0<m<2000, 0<= k < 2500),计算其概率,以科学格式输出,保留小数点后6位有效数字。

 

【输入形式】

 

输入文件为当前目录下的poisson.in。

文件中包含两个数字,分别为m,k的值。

 

【输出形式】

 

输出文件为当前目录下的poisson.out。

文件中输出泊松分布的值,值以科学格式输出,保留小数点后6位有效数字。

 

【输入样例】

 

1  0

 

【输出样例】

 

3.678794e-01

 

【运行时限】

 

1秒

 

【评分标准】

    

    可以使用数学库函数,误差不超过0.000001。

*/
#include<stdio.h>
#include<math.h>
double poisson(int m, int k);
double poisson(int m, int k)//老师上课讲解的方法
{
    double p;
     int i;
     p = k * log(m) - m;
     for (i = 2; i <= k; i++){
              p -= log(i);
     }
     return exp(p);
}
void main()
{
int a,b,k=0; 
double answer;
FILE *p,*q;
p=freopen("poisson.in","r",stdin);
q=freopen("poisson.out","w",stdout);
fscanf(p,"%d %d",&a,&b);
answer=poisson(a,b);
if (answer>=10.0)
{//调整成科学计数法
while(answer>=10.0)
{
answer/=10.0;
k++;
}
fprintf(q,"%.6fe%02d",answer,k);
}
else if (answer<1.0){
while(answer<1.0)
{
answer*=10.0;
k++;
}
fprintf(q,"%.6fe-%02d",answer,k);
}
else 
fprintf(q,"%.6f",answer);
fclose(p);
fclose(q);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -