2021年3月21日日曜日

5D6などの確率

2D6で出る目の和の確率は簡単なわけですが、21さんのtwitterで出された問題

 https://twitter.com/rubbishdog21/status/1368921996021485569

「サイコロ5個振って、うち1個が2,2,3,4,5,6のときの出る目の合計の確率が知りたい」は素朴にやるとちょっと大変、普通に5D6でも大変ですし、3D6でも5=1+1+3=1+2+2みたいな組み合わせを全部考えないといけないので結構大変。こういうのは次のように考えると少し楽になります。

n個のダイスを振るとして、\(\sum_{d_1,\dots,d_n}x^{d_1+\dots+d_n}\)のk次の係数が出た目の和がkになる場合の数です。

この式は\(\sum_{d_1}x^{d_1}\dots\sum_{d_n}x^{d_n}\)と分解できて、結局\((\sum_dx^d)^n\)です。nを決めて\((x+x^2+x^3+x^4+x^5+x^6)^n\)を計算すれば良いのですが、それは人間技ではないので計算機に任せます。n=3として、Pythonならこんな感じで3行。

from sympy import *
x=Symbol(‘x’)
expand((x+x**2+x**3+x**4+x**5+x**6)**3)

21さんが考えた問題は5個のダイスのうち一つだけ2,2,3,4,5,6が出る場合なので、

expand((x**2+x**2+x**3+x**4+x**5+x**6)*(x+x**2+x**3+x**4+x**5+x**6)**4)

です。答は下に。

\[ x^{30} + 5 x^{29} + 15 x^{28} + 35 x^{27} + 71 x^{26} + 129 x^{25} + \] \[211 x^{24} + 315 x^{23} + 435 x^{22} + 561 x^{21} + 675 x^{20} + 759 x^{19} +\] \[801 x^{18} + 795 x^{17} + 741 x^{16} + 645 x^{15} + 525 x^{14} + 399 x^{13} + \] \[281 x^{12} + 181 x^{11} + 105 x^{10} + 55 x^{9} + 25 x^{8} + 9 x^{7} + 2 x^{6} \] 21さんの解答https://twitter.com/rubbishdog21/status/1369241440224739331と同じです。