做个骰子成功几率的分析,投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

转载于:https://www.cnblogs.com/scrumme/p/7135934.html

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

  1. c语言火车票管理系统360问答,C语言 车票管理系统 前面一点点的程序,不知道报错是什么意思,可以解释一下吗?代码的具体问题是什么...

    满意答案 #include "stdio.h" #include #include #define N 1000 typedef struct //定义新结构体Ticket { 5 ...

  2. n个人围成一圈 报数java_n个人围成一圈报数,报到3的人退出,依次直到剩下一人,这人是第几个人?用java,不知道哪里错...

    importjava.util.Scanner;publicclasscjj{publicstaticvoidmain(String[]args){Scannerinput=newScanner(Sy ...

  3. 杭电c语言课程设计实验7,杭电1072 BFS 大神给看看啊 郁闷整整10个小时了 不知道哪里错wa...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 NightmareTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K ( ...

  4. kernel php segfault,php不停报错segfault,求高手帮忙

    系统日志不停报:Dec 21 18:54:09 CentOS5 kernel: php-cgi[6529]: segfault at 000000000839d518 rip 000000000070 ...

  5. keil 报错解决 Loading PDSC Debug Description failed forSTMicroelectronics STM32xxxx

    当我们导入新的包时,可能会出现下面的报错. 会提示报错的路径: 所以就需要去找对应的路径 找到后先将只读属性去掉. 然后简单点,就用记事本打开: 然后 ctrl + f,点出查找界面,输出 Messa ...

  6. Python发送邮件报错554,求解答。

    import smtplib from email.mime.text import MIMEText from email.utils import formataddrmsg = MIMEText ...

  7. hive中insert插入一条记录报错,跪求高人指点!!!

    问题描述: 在hive中创建数据库和数据表之后,进行insert操作报错. hive (myhive)> insert into stu values (1,"zhangsan&quo ...

  8. 求解!IDEA使用泛型V,K,V报红(报错),求大佬支招(已解决)

    public class LRULinkedHashMap extends LinkedHashMap {public V put(K key, V value){try {lock.lock();r ...

  9. 对逻辑回归损失函数进行求导

    如果我们基于逻辑回归的损失函数做GD梯度下降,那么就要求梯度,而我们知道求梯度是loss损失函数对theta求偏导. 1.首先先对逻辑回归函数求导(后面对loss求偏导会用到) 2.逻辑回归损失函数 ...

最新文章

  1. 平年闰年c语言源代码,C语言平年闰年问题
  2. javascript 匿名函数的理解
  3. c语言随机延迟5-10秒,linux下写个C语言程序,要求有0.5微秒以下的延时,要怎样写...
  4. 浅谈网络协议(一) 为什么要学网络协议
  5. 【安全漏洞】Resin解析漏洞分析
  6. 【阿里云课程】卷积神经网络:结构单元、卷积层反向传播求解与典型模型
  7. 扩展类加载器 Extension ClassLoader
  8. LeetCode 1945. 字符串转化后的各位数字之和
  9. SpringBoot笔记整理(二)
  10. CVPR 2019 行人检测新思路:高级语义特征检测取得精度新突破
  11. Bootstrap三角箭头.caret 类
  12. AngularJs form.FormController、ngModel.NgModelController
  13. springboot mybatisplus 多数据源_【SpringBoot DB 系列】MybatisPlus 多数据源配置
  14. eclipse为项目设置jdk
  15. 经典混响插件免安装+50拓展 – Audio Ease Altiverb 7 XL 7.2.8 WiN
  16. 小米便签产品级的源码
  17. Kali 利用setoolkit制作钓鱼网站
  18. uniapp使用IPA苹果支付
  19. linux 复制文件提示略过目录xxx
  20. 戴尔刀片服务器型号在哪里,戴尔 PowerEdge M640 刀片式服务器:服务器 | Dell 中国大陆...

热门文章

  1. java监听焦点事件_【Java Swing公开课|Java Swing焦点事件监听器怎么用,看完这篇文章你一定就会了】- 环球网校...
  2. 已知法向量 求投影_MIT—线性代数笔记15 子空间投影
  3. Oracle 11g ora 15018,oracle 11gR2 RAC root.sh 错误 ORA-15072 ORA-15018
  4. python excel 数据匹配实现vlookup功能_如何用python实现excel中的vlookup功能?
  5. curd什么意思中文_查英英字典:What a shame是什么意思?
  6. 平板的android版本是5.0.2,EMUI5.0荣耀平板2升级固件下载
  7. Linux相关配置 集群免密码登录配置
  8. linux ps 详解 博客,Linux PS 命令 详解(转)
  9. 检查各计算机所属工作组ip,如何在Win8.1/RT 8.1中添加语言或键盘
  10. c语言之优先级 结合性与自增运算,C语言之优先级、结合性与自增运算