zoukankan      html  css  js  c++  java
  • 红球多于白球的概率(分治递归)

    问题:

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

    请写个函数解决这个问题。

    思考3分钟,答案在下面的下面……

    m: 袋中红球的数目
    n: 袋中白球的数目
    x: 需要取出的数目
    y: 红球至少出现的次数

     1 double pro(int m, int n, int x, int y)
    2 {
    3 if(y > x) return 0;//需要取的球少于至少要取的红球
    4 if(y == 0) return 1;//至少取的红球是0
    5 if(y > m) return 0;//红球总数少于至少要取的红球
    6 if(x-n > y) return 1;//取出所以白球后,还要取的球比至少要取的红球多
    7 double p1 = pro(m-1,n,x-1,y-1);//取出红球的概率
    8 double p2 = pro(m,n-1,x-1,y); //取出白球的概率
    9 return (double)m/(m+n) * p1 + (double)n/(m+n) * p2;
    10 }




  • 相关阅读:
    css3转换
    JavaScript函数
    JavaScript数组
    JavaScript流程控制
    JavaScript数据类型、运算
    css3响应布局
    css3渐变、背景、过渡、分页
    css3初识
    CSS3选择器
    H5拖拽、绘画、web存储
  • 原文地址:https://www.cnblogs.com/HpuAcmer/p/2433803.html
Copyright © 2011-2022 走看看