约翰和贝茜玩抽球游戏。一个盒子中有 n 个白球和 m 个黑球。双方轮流行动由约翰先行。每当轮到一方行动时其从盒中随机抽出一个球盒子中的每个球被抽出的概率相同。率先抽出白球的一方获胜。此外由于贝茜的手比较笨拙所以每当她抽出一个球后盒子都会剧烈摇晃随后就会有恰好一个球掉出盒子如果盒中有球的话盒子中的每个球掉出的概率相同。掉出的球无论是什么颜色都予以作废。当盒子中没有球时如果仍未分出胜负则判定为贝茜获胜
我们可以使用动态规划来解决这个问题。
设dp[i][j]表示剩余白球数为i,剩余黑球数为j时,约翰获胜的概率。
当i=0时,表示没有剩余白球,约翰已经获胜,所以dp[0][j]=1。
当j=0时,表示没有剩余黑球,贝茜已经获胜,所以dp[i][0]=0。
对于其他情况,我们考虑约翰的行动和贝茜的行动:
-
约翰的行动:约翰从盒子中随机抽出一个球,有1/(i+j)的概率抽到白球,这时约翰获胜的概率为dp[i-1][j],有j/(i+j)的概率抽到黑球,这时贝茜获胜的概率为dp[i][j-1]。所以约翰的获胜概率为(dp[i-1][j] + dp[i][j-1]) * (1/(i+j))。
-
贝茜的行动:贝茜从盒子中随机抽出一个球,有1/(i+j)的概率抽到白球,这时约翰获胜的概率为dp[i-1][j],有j/(i+j)的概率抽到黑球,这时贝茜获胜的概率为dp[i][j-1]。但由于贝茜的手笨拙,掉出的球无论是什么颜色都予以作废,所以贝茜的获胜概率为dp[i-1][j] * (1/(i+j))。
综上所述,我们可以得到状态转移方程: dp[i][j] = (dp[i-1][j] + dp[i][j-1]) * (1/(i+j)) + dp[i-1][j] * (1/(i+j))
我们可以使用一个二维数组来保存dp的值,从小到大依次计算dp[i][j],最后我们可以得到约翰获胜的概率dp[n][m]
原文地址: http://www.cveoy.top/t/topic/inHD 著作权归作者所有。请勿转载和采集!