关于概率算法的问题,不知道逻辑错在哪里,求debug

Posted 敏捷人生@cnblogs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于概率算法的问题,不知道逻辑错在哪里,求debug相关的知识,希望对你有一定的参考价值。

做个骰子成功几率的分析,投n颗骰子,第一次投成功的几率是a,然后投成功的骰子,需要再投1次,这次成功的几率是b。第二次成功的骰子才算最终成功。

要分析出n颗骰子,最终成功0到n颗的概率。

我写了个算法,求出的结果,合计0到n颗的概率不近似1,而且差别很大,求教各位大大算法有什么错误。

我算法的基本思路:

  1. 先统计出第一次投成功0-n颗骰子的概率列表。这步我自认没有问题,合计验算结果近似1

    for (var i = 0; i <= n; i++){
        FirstSuccessRateTbl.Add(i
            , Utils.C(n, i)*(decimal)(Math.Pow((double)firstSucessRate,i)*Math.Pow((double)firstLoseRate,n-i)));
    }

    其中Utils.C是我按C概率公式写的函数。FirstSuccessRateTbl用的是哈希表。

  2. 然后以第一次成功的概率表作为条件概率统计后一次成功X颗的几率,即累加第一次成功X及X以上颗骰子的情况下第二次投成功X颗的概率。

    decimal sucessXRate = 0;
    for (int i = x; i <= n; i++) {
        sucessXRate += FirstSuccessRateTbl[i] * (decimal)(Math.Pow((double)secordSucessRate, i)*Utils.C(i,i-x)*Math.Pow((double)secordFailRate,i-x));
    }
    return sucessXRate;

但是按这个算法算下来,2次成功0-n颗的几率合计不为1,不知道错误在哪里。


关于概率算法的问题,不知道逻辑错在哪里,求debug >> csharp

这个答案描述的挺清楚的:
http://www.goodpm.net/postreply/csharp/1010000008918700/关于概率算法的问题不知道逻辑错在哪里求debug.html

以上是关于关于概率算法的问题,不知道逻辑错在哪里,求debug的主要内容,如果未能解决你的问题,请参考以下文章

易语言7z压缩解压模块使用方法! 不知道错在哪里了!求详细说明!大牛们谢谢了

tomcat打开localhost:8080/xx嗯时候报告404错误,但是我不知道错在哪里,求指

请C语言高手告诉我我错在哪里?

关于CSS滤镜设置的问题,为啥网页显示不出来效果,变不了灰色,帮忙查看一下代码看看错在哪里,谢谢

代码片段 PHP,预期文件结尾,我错在哪里?

请问一下python程序代码错在哪里了,谢谢。是通过二分法求方程根的函数