关键
1.各个个体之间的概率是独立的,所以ans=pow(fi,m)
2.就只需要看前面产生了几个人就可以了,所有人在第i天全部死亡,也就等价于儿子在第i-1天全部死亡
3.全概率公式(不知道是什么)
代码
#include <bits/stdc++.h>
using namespace std;
const int M=1005;
double p[M],f[M];
int main() {
int TT;cin>>TT;
for(int t=1;t<=TT;t++) {
int n,k,m;
cin>>n>>k>>m;
for(int i=0;i<n;i++)cin>>p[i];
f[0]=0;
f[1]=p[0];
for(int i=2;i<=m;i++) {
f[i]=0;
for(int j=0;j<n;j++)
f[i]+=p[j]*pow(f[i-1],j);
}
printf("Case #%d: %.7lf\n",t,pow(f[m],k));
}
return 0;
}
//前一天全部死亡的概率,代替今天每一只死亡的概率
//他生了一只,然后在i-1天内全部死亡的概率
//不用考虑中间态老鼠的数量,只需要求出最终太老鼠死亡的概率就行了
//很懵,也很神奇
//还有什么全概率公式
标签:概率,int,TT,繁衍,麻球,死亡
From: https://www.cnblogs.com/basicecho/p/17044763.html