加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 组合计数拼图:掷20,8面骰子,获得至少5个相同值的骰子

发布时间:2020-12-20 12:36:17 所属栏目:Python 来源:网络整理
导读:假设一个游戏,其中一个滚动20,8面模具,总数为8 ^ 20个可能的结果.为了计算特定事件发生的概率,我们将事件发生的方式数除以8 ^ 20. 可以计算得到正好5个骰子值3的方法的数量.(20选择5)给出了3个订单的数量.7 ^ 15给出了我们无法获得15卷的值3的方法. number o
假设一个游戏,其中一个滚动20,8面模具,总数为8 ^ 20个可能的结果.为了计算特定事件发生的概率,我们将事件发生的方式数除以8 ^ 20.

可以计算得到正好5个骰子值3的方法的数量.(20选择5)给出了3个订单的数量.7 ^ 15给出了我们无法获得15卷的值3的方法.

number of ways to get exactly 5,3's = (20 choose 5)*7^15.

答案也可以看作是我可以多少方法重新排列字符串3,3,0(20选5)倍我们零的值总数(假设7个合法值)7 ^ 15(这是正确的).

>问题1:如何计算获得相同值的5个骰子的方式的数量(即,对于所有骰子值).
注意:如果我只是天真地使用上面的第一个答案并乘以bt 8,我会得到大量的重复计算?

我明白我可以解决每个案例(5个1),(5,2个),(5个,3个),…(5个,8个)求和它们(更简单地说是8 *(5 1个)).然后减去重叠次数(5 1)和(5 2),(5 1)和(5 3)…(5 1)和(5,2)和……和(5,8)的总和但这看起来非常凌乱.我会以扩展到大量样本和大量类的方式对此进行概括.
>我如何计算获得相同值的至少5个骰子的方法数量?

所以222220000000000000000或11110100000000000002或22222100000001110000或11011211222222223333,但不是00001111222233334444或000511512252363347744.

我正在寻找解释数学的答案或者指向支持它的库(esp python模块).细节和示例的额外要点.

解决方法

使用 Inclusion/Exclusion Principle可以解决重复计算问题

我怀疑它出现了:

Choose(8,1)*P(one set of 5 Xs) 
- Choose(8,2)*P(a set of 5 Xs and a set of 5 Ys) 
+ Choose(8,3)*P(5 Xs,5 Ys,5 Zs) 
- Choose(8,4)*P(5 Xs,5 Zs,5 As)

P(set of 5 Xs) = 20 Choose 5 * 7^15 / 8^20
P(5 Xs,5 Ys) = 20 Choose 5,5 * 6^10 / 8^20

等等.这并没有直接解决’超过5个相同’的问题,就好像你简单地总结了这个应用于5,6,7..20的结果;你会计算你所拥有的案例,例如10 1和5 8.

您可以再次应用包含排除以得出第二个答案;所以,P(至少5)= P(一组20)……(P(一组15) – 7 * P(5个骰子中的5个))((P(一组14个) – 7 * P(6个中的一组5个) – 7 * P(6个中的一个6个)).使用源代码来证明自己更难.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读