Uva 11201麻球繁衍(设概率方程的技巧)
发布日期:2021-06-30 10:30:35
浏览次数:2
分类:技术文章
本文共 877 字,大约阅读时间需要 2 分钟。
题意
k k k个球,每个球只存在一天就死去,但死前有 p i p_i pi的概率生 i i i个球( i ∈ [ 0 , n − 1 ] i\in[0,n-1] i∈[0,n−1])
问在 m m m天以前死光的概率是多少( k , n , m < = 1000 k,n,m<=1000 k,n,m<=1000)
若知道一直麻球在 m m m天前死掉的概率是 x x x,那么答案就是 x k x^k xk
定义 f [ i ] f[i] f[i]表示一只麻球在 i i i天内死去的概率,考虑递推式
f [ i ] = p 0 + p 1 f [ i − 1 ] + p 2 f [ i − 1 ] 2 . . . p n − 1 f [ i − 1 ] n − 1 f[i]=p_0+p_1f[i-1]+p_2f[i-1]^2...p_{n-1}f[i-1]^{n-1} f[i]=p0+p1f[i−1]+p2f[i−1]2...pn−1f[i−1]n−1
意思是,第一天如果麻雀死了,那就是死了,事件发生的概率是 p 0 p_0 p0
如果第一天麻雀没死,且产生了 1 1 1个后代,事件发生的概率是 p 1 p_1 p1
现在天数还有 i − 1 i-1 i−1天,有 1 1 1只麻雀需要死去,所以概率是 p 1 ∗ f [ i − 1 ] p_1*f[i-1] p1∗f[i−1]
以此类推
#includeusing namespace std;const int maxn = 5e5+10;int t,n,k,m,casenum;double p[maxn],f[maxn];int main(){ cin >> t; while( t-- ) { cin >> n >> k >> m; for(int i=0;i > p[i]; for(int i=1;i<=m;i++) { double sum = 1; f[i] = 0; for(int j=0;j
转载地址:https://issue-is-vegetable.blog.csdn.net/article/details/114643914 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
很好
[***.229.124.182]2024年04月15日 16时26分05秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
HA: InfinityStones靶机渗透测试
2019-04-30
Android Handler 泄漏
2019-04-30
HorizontalInterruptView 实现监听水平滑动事件
2019-04-30
java中volatile关键字的含义【转】
2019-04-30
将class声明为final的好处
2019-04-30
Android 获取屏幕尺寸与密度【转】
2019-04-30
windows下androidNDK环境配置
2019-04-30
Android 接受短信和发送短信
2019-04-30
TextView 加阴影
2019-04-30
Android 每分钟广播
2019-04-30
css 学习
2019-04-30
解决 android dex 65535 方法数的限制
2019-04-30
javascript 菜鸟学习
2019-04-30
blocksDescendants 屏蔽子视图获取焦点
2019-04-30
Windows7下VMware虚拟机Ubuntu连接网络(NAT模式)
2019-04-30
VMware Ubuntu创建共享文件夹
2019-04-30
解决华为手机不显示Log日志
2019-04-30
坐标旋转的几何矩阵表示
2019-04-30