poj2096(概率dp)
Posted windfreedom
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了poj2096(概率dp)相关的知识,希望对你有一定的参考价值。
src:http://poj.org/problem?id=2096
题意: 一个软件有s个子系统,会产生n种bug 某人一天发现一个bug,这个bug属于一个子系统,属于一个分类 每个bug属于某个子系统的概率是1/s,属于某种分类的概率是1/n 问发现n种bug,每个子系统都发现bug的天数的期望。
解答:https://blog.csdn.net/morgan_xww/article/details/6774708 https://www.cnblogs.com/kuangbin/archive/2012/10/02/2710606.html
“转自kuangbin博客”
dp[i][j]表示已经找到i种bug,j个系统的bug,达到目标状态的天数的期望 dp[n][s]=0;要求的答案是dp[0][0]; dp[i][j]可以转化成以下四种状态: dp[i][j],发现一个bug属于已经有的i个分类和j个系统。概率为(i/n)*(j/s); dp[i][j+1],发现一个bug属于已有的分类,不属于已有的系统.概率为 (i/n)*(1-j/s); dp[i+1][j],发现一个bug属于已有的系统,不属于已有的分类,概率为 (1-i/n)*(j/s); dp[i+1][j+1],发现一个bug不属于已有的系统,不属于已有的分类,概率为 (1-i/n)*(1-j/s);整理便得到转移方程
这里已知的是[n][s] 一般求概率是正推,求期望是逆推。通过题目可以体会到这点。
ac代码:
以上是关于poj2096(概率dp)的主要内容,如果未能解决你的问题,请参考以下文章
POJ-2096-Collecting Bugs(概率DP)
POJ2096Collecting Bugs(数学期望,概率DP)