排列组合概率近似计算学习理解的散分贴

Smile_Tiger 2014-11-13 06:22:50
前不久在计算概率方面遇到些困难,见贴。有网友给出了斯特林
http://bbs.csdn.net/topics/390916953

http://bbs.csdn.net/topics/390905211(这个帖子也很有意思的)

因为自己的数学知识丢得太多了,所以重新学习对数,才发现原来对数就是为了简化运算而发明的。。。

现在贴一些简化运算方面的个人理解,希望各位大神多建议

1. 首先实现一个对阶乘求常用对数的函数
lg_fact(n) = lg(n!) = lg(1) + lg(2) + ... + lg(n) ,这个很容易实现,不会出现大数

2. 然后实现对排列求常用对数的函数
lg_a(n,m) = lg(A(n,m)) = lg(n!/(n-m)!) = lg_fact(n) - lg_fact(n-m)

3. 然后实现对组合求常用对数的函数
lg_c(n,m) = lg(C(n,m)) = lg(A(n,m)/m!) = lg_a(n,m) - lg_fact(m) = lg_fact(n) - lg_fact(n-m) - lg_fact(n)

4. 最后求概率
例如:52张牌中抽两张牌,是AK的概率
p = (4*4)/C(52,2)
lg(p) = lg(16/lg_c(52,2)), 这个式子好计算,注意如果得到的是正数,说明p的公式有问题导致分子大于分母

最后 p = 10^(lg(p))
...全文
330 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
dianyancao 2014-12-12
啊,不对,楼主,散分要到非技术区,不然管理员会来找你哦
  • 打赏
  • 举报
回复
快乐起航2020 2014-11-20
太深奥了
  • 打赏
  • 举报
回复
Smile_Tiger 2014-11-17
谢谢ls,又告诉了我一个知识点
  • 打赏
  • 举报
回复
dianyancao 2014-11-16
恭喜啊,再看对数最大似然估计呀o(∩_∩)o
  • 打赏
  • 举报
回复
cnmhx 2014-11-14
祝贺楼主顿悟!
  • 打赏
  • 举报
回复
Smile_Tiger 2014-11-13
lg(p) = lg(16/lg_c(52,2)), 写错,更正为lg(p) = lg(16/C(52,2)) = lg(16) - lg_c(52,2)
  • 打赏
  • 举报
回复
发帖
数据结构与算法

3.2w+

社区成员

数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
帖子事件
创建了帖子
2014-11-13 06:22
社区公告
暂无公告