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

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))
...全文
264 点赞 收藏 6
写回复
6 条回复
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)
回复 点赞
发动态
发帖子
数据结构与算法
创建于2007-08-27

3.0w+

社区成员

3.4w+

社区内容

数据结构与算法相关内容讨论专区
社区公告
暂无公告