链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3696
题意:外星人一直随机产生器官,每天产生的器官数量的平均值为r,求一天产生的器官数量小于等于N的概率。
思路:因为它是一直连续产生器官的,符合poisson分布,所以套用公式即可。
#include<iostream> #include<cmath> #include<cstdio> using namespace std; double factrial(int n)//血淋淋的教训啊,一定要用double,long long也不行 { if(n==0) return 1; else return n*factrial(n-1); } int main() { int t,n; double r,p; cin>>t; while(t--) { cin>>n>>r; p=0; for(int i=0;i<=n;i++) { p+=pow(r,i)/factrial(i)*exp(-r); } printf("%.3lf\n",p); } return 0; }
在写的时候,求阶乘的函数要用double,错了几次了。
明天的随机过程课我该认真听了。。。
究竟是我抛弃了历史,还是历史遗弃了我。