口袋中有a个白球,b个黑球,不放回的摸,求白球最后留在口袋中的概率?

 我来答
军弘秋梵3R
2020-12-30 · TA获得超过819个赞
知道小有建树答主
回答量:1003
采纳率:92%
帮助的人:26万
展开全部
这个问题实际上是四元递推式,我只能写出递推式,却不会求通式。

设这个问题的解是f(m,n,a,b)

分类讨论摸到的第一个球,第一个球可能是白球也可能是黑球。

如果第一个球是白球,那么剩下的子问题是f(m-1,n,a-1,b).第一个球是白球的概率为 [公式]

如果第一个球是黑球,那么剩下的子问题是f(m,n-1,a,b-1).第一个球是黑球的概率为 [公式]

所以

[公式]

边缘条件是: [公式]

当b=0时,此问题答案很明确:

[公式]

猜测f(m,n,a,b)可能也有某种简单形式。

对于一元递推式,可以用求根+解方程的方式求出通项。对于此题中的多元递推式有没有系统性的解决方法?

f_dict = {}

def f(m, n, a, b):
"""
m个白球,n个黑球,想要摸到a个白球,b个黑球
用递推式的方式计算准确结果,结果使用分数表示
"""
assert a >= 0 and b >= 0 and m >= 0 and n >= 0
assert a <= m and b <= n
param = (m, n, a, b)
if param in f_dict:
return f_dict[param]
if a == 0 and b == 0:
f_dict[param] = 0
return 0
if m == 0 or n == 0:
f_dict[param] = max(a, b)
return max(a, b)
x = Fraction(m, m + n)
y = Fraction(n, m + n)
ans = 1 + x * f(m - 1, n, max(a - 1, 0), b) + y * f(m, n - 1, a, max(b - 1, 0))
f_dict[param] = ans
return ans
问题来源
最近在做一个麻将小游戏,需要实现一个麻将AI。

麻将AI的关键就是评价一个手牌局面的好坏:我用手牌局面到胡牌局面之间的最短距离表示,最短距离就是“期望摸几次牌才能胡牌”。

麻将的牌堆就像一个袋子,袋子里面有34种小球,每种小球的个数若干,期望摸几次才能摸到想要的“球型”。
三井兽
高粉答主

推荐于2019-08-16 · 每个回答都超有意思的
知道大有可为答主
回答量:561
采纳率:100%
帮助的人:122万
展开全部

因为不放回,所以你可以这样思考这个问题:
既然是问剩下最后一个球的颜色的概率,那你可认为你先拿出的球就是最后一个球,那么拿到白球的概率就应该是:白球数/总球数=a/(a+b)

概率,又称或然率、机会率或机率、可能性,是数学概率论的基本概念,是一个在0到1之间的实数,表示一个事件发生的可能性大小的数,叫做该事件的概率。它是随机事件出现的可能性的量度,同时也是概率论最基本的概念之一,是对随机事件发生的可能性的度量。物理学中常称为几率。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式