C概率问题 某个袋子中有红球m个,白球n个。现在要从中取出x个球。那么红球数目多于白球的概率是多少呢? 5

请问你给的答案的数学原理是什么呢,概率为什么那么求啊,详细点哈,谢谢了... 请问你给的答案的数学原理是什么呢,概率为什么那么求啊,详细点哈,谢谢了 展开
 我来答
hele_two
2012-05-26 · TA获得超过485个赞
知道小有建树答主
回答量:497
采纳率:0%
帮助的人:402万
展开全部
c语言实现:下面的代码解决了这个问题。其中的y表示红球至少出现的次数。
这与前文的问题是等价的。因为如果取30个球,要求红球数大于白球数,则等价于至少取出16个红球。请根据仅存的线索,判断程序逻辑,并补全缺少的代码。

/*
m: 袋中红球的数目
n: 袋中白球的数目
x: 需要取出的数目
y: 红球至少出现的次数
*/
double pro(int m, int n, int x, int y)
{
if(y>x) return 0;
if(y==0) return 1;
if(y>m) return 0;
if(x-n>y) return 1;
double p1 = ____p1=pro(m-1,n,x-1,y-1);____
double p2 = ____p2=pro(m,n-1,x-1,y);____
return (double)m/(m+n) * p1 + (double)n/(m+n) * p2;
}
其实:我利用了递归的思想。
假设第一次我摸到1个红球,那么以后我至少需要摸出x-1个球(红球至少出现y-1次),而白球依然不变是n个。
但是如果我这次摸到的是白球,那么以后我至少还需摸出y个红球才能保证最终红球多于白球,其他同上。
下面就是终止条件:
if(y>x) return 0;应该没问题吧,如果要求红球比摸出的所有球都多,怎么可能!所以没有这种情况,返回0;
if(y==0) return 1;判断还需摸出0个红球,满足条件,返回1;
if(y>m) return 0;这也没问题!
if(x-n>y) return 1;即使所有白球都被摸到,但还需摸出x-n个球(>y),只能全是红球。满足。
最难懂的就是结尾:return (double)m/(m+n) * p1 + (double)n/(m+n) * p2;
这是函数返回给调用函数的值,利用了分步相乘的思想:左边表示此次抽到红球的概率*以后满足条件的概率;右边表示P(此次抽到白球)*P(以后满足条件);这种递归直到算到最后直接用到判断条件为止。

参考资料: http://zhidao.baidu.com/question/388004921.html?oldq=1

来自:求助得到的回答
wujia8888
2012-03-17 · TA获得超过149个赞
知道答主
回答量:53
采纳率:0%
帮助的人:26.8万
展开全部
m/m+n ―n/m+n 不用考虑摸出多少个 不论多少概率都是不变的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
798333748
2012-03-17 · TA获得超过158个赞
知道答主
回答量:76
采纳率:100%
帮助的人:36.5万
展开全部
你能否给个具体的数字。还是题目就是未知数?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式