关于概率算法的问题,不知道逻辑错在哪里,求debug
做个骰子成功几率的分析,投n颗骰子,第一次投成功的几率是a,然后投成功的骰子,需要再投1次,这次成功的几率是b。第二次成功的骰子才算最终成功。
要分析出n颗骰子,最终成功0到n颗的概率。
我写了个算法,求出的结果,合计0到n颗的概率不近似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用的是哈希表。
然后以第一次成功的概率表作为条件概率统计后一次成功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的更多相关文章
- JSBinding+Bridge.Net:框架代码与逻辑代码的关系
在JSB+Bridge工程中你可以同时维护Cs版本和Js版本的游戏. 框架代码:简称framework,表示那些不进行热更的代码.注意,这包括你自己写的代码,也包括引用的Dll,比如UnityEngi ...
- poj3429(有错)
不知道为什么错.. /************************************************************************* > File Name: ...
- MySQL 常用报错注入原理分析
简介 这段时间学习SQL盲注中的报错注入,发现语句就是那么两句,但是一直不知道报错原因,所以看着别人的帖子学习一番,小本本记下来 (1) count() , rand() , group by 1.报 ...
- 微信小程序报错TypeError: this.setData is not a function
今天在练习小程序的时候,遇到小程序报错 对于处于小白阶段的我,遇到这种报错,真还不知道是错从何来,只有一脸蒙逼,后来通过查询,终于知道了问题所在,下面对这一问题做一记录 小程序默认中是这么写的 onL ...
- 面向对象进阶时,if语句写错位置
这周blog我也不知道要写什么,因为这章我其实学得有点懵,前面那几天我纠结了好久代码,一直不知道原因错在哪里.后来经过询问老师才知道自己调用错了构造方法,相信也有跟我一样的新手会犯这个错误.我在创建关 ...
- AgileBoot - 项目内统一的错误码设计
本篇文章主要探讨关于统一错误码的设计,并提供笔者的实现 欢迎大家讨论,指正. 该错误码的设计在仓库: github:https://github.com/valarchie/AgileBoot-Bac ...
- VS2015+Win10 调试DirectX 报错
安装完Win10调试程序突然在这个地方报错: #if (defined(DEBUG) || defined(_DEBUG)) deviceFlags |= D3D11_CREATE_DEVICE_DE ...
- 解决关于jquery中$.get()方法总是报“HierarchyRequestError: Node cannot be inserted at the specified point in the hierarchy”错的方法
解决关于jquery中$.get()方法总是报“HierarchyRequestError: Node cannot be inserted at the specified point in the ...
- HDU 2048 神、上帝以及老天爷(递归,错排,dp,概率)
中文题,错排,求概率,不解释,核心思路同 HDU 1465 错排简单思路可看:http://www.cnblogs.com/laiba2004/p/3235934.html //错排,但是我之前叫了几 ...
随机推荐
- JAVA设计模式之【职责链模式】
职责链模式 专门处理请求链式传递的模式 角色 Handler抽象处理者 ConcreteHandler具体处理者 在职责链模式中,很多对象由每一个对象对其下家的引用而连接成一条链,请求在这条链上传递, ...
- MFC补码原码反码转换工具
/*_TCHAR str[100] = { 0 }; wsprintf(str, _T("%d"),num);*/ ; CString str; m_edit1.GetWindow ...
- @Query Annotation in Spring Data JPA--转
原文地址:http://javabeat.net/spring-data-jpa-query/ In my previous post on Spring Data, I have explained ...
- python的import与from…import的区别
[转]http://blog.csdn.net/windone0109/article/details/8996184 在python中用import或者from-import来导入相应的模块.模块其 ...
- Android PullToRefreshListView设置各个item之间的间距
要设置第三方的上拉下载listView的item之间的间距,可以在xml布局文件中的listView节点中设置xml的属性即可: android:divider="#00000000&quo ...
- avalon过滤
<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> ...
- Sublime使用随记
1.安装 Package Control Ctrl+` 打开命令行,执行如下代码: 适用于 Sublime Text 3: import urllib.request,os;pf='Package C ...
- 找出 alter system kill session ‘sid,serial#’ kill 掉的数据库会话对应进程
当我们使用alter system kill session ‘sid,serial#’ 在数据库中kill掉某个会话的时候,如果你观察仔细会发现v$session.paddr发生了改变,从而是的不能 ...
- Uncaught TypeError: Cannot read property 'offsetTop' of undefined at VueComponent.handleScroll
mounted() { window.addEventListener("scroll", this.handleScroll); }, beforeDestroy() { win ...
- (noip模拟二十一)【BZOJ2500】幸福的道路-树形DP+单调队列
Description 小T与小L终于决定走在一起,他们不想浪费在一起的每一分每一秒,所以他们决定每天早上一同晨练来享受在一起的时光. 他们画出了晨练路线的草图,眼尖的小T发现可以用树来描绘这个草图. ...