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

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))
...全文
367 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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)

33,027

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧