サイコロの出目の分布とパスカルの三角形
今回は、場合の数というか、確率というか、統計というか、そっち方面の話で、面白い性質を見つけたのでご紹介します。正六面体のサイコロをn個同時に振ったときの各出目の分布とその割合を考える。n=1のとき、 出目 分布 割合 1 1 0.166666 2 1 0.166666 3 1 0.166666 4 1 0.166666 5 1 0.166666 6 1 0.166666 n=2のとき、 出目 分布 割合 2 1 0.027777 3 2 0.055555 4 3 0.083333 5 4 0.111111 6 5 0.138888 7 6 0.166666 8 5 0.138888 9 4 0.111111 10 3 0.083333 11 2 0.055555 12 1 0.027777 n=3のとき、 出目 分布 割合 3 1 0.004630 4 3 0.013889 5 6 0.027778 6 10 0.046296 7 15 0.069444 8 21 0.097222 9 25 0.115741 10 27 0.125000 11 27 0.125000 12 25 0.115741 13 21 0.097222 14 15 0.069444 15 10 0.046296 16 6 0.027778 17 3 0.013889 18 1 0.004630 …この分布の値の並びをどこかで見たなと思っていたんです。そのどこかが、パスカルの三角形です。 1 1 1 1 1 1 1 1 1 1 2 3 4 5 6 7 8 9 1 3 6 10 15 21 28 36 45 1 4 10 20 35 56 84 120 165 1 5 15 35 70 126 210 330 495 1 6 21 56 126 252 462 792 1287 1 7 28 84 210 462 924 1716 3003 1 8 36 120 330 792 1716 3432 6435 1 9 45 165 495 1287 3003 6435 12870 三角形といいつつ、正方形に描いたのは、サイコロの分布と見比べるためです。パスカルの三角形の計算は、1行目と1列目をすべて1で埋める。まだ埋まっていないところを、上と左を足した値として埋めていく。サイコロをn=1個振ったときの分布は、1、1、1、1、1、1とパスカルの三角形の1列目と等しい。サイコロをn=2個振ったときの分布は、1、2、3、4、5、6、5、4、3、2、1だが、パスカルの三角形の2列目は、1、2、3、4、5、6、7、8、9、10、11、…と続くため、6行目までは等しかったが、7行目から等しくなくなる。サイコロをn=3個振ったときの分布は、1、3、6、10、15、21、25、27、27、25、21、15、10、6、3、1だが、パスカルの三角形の3列目は、1、3、6、10、15、21、28、36、45、…と続くため、6行目までは等しかったが、7行目から等しくなくなる。実に惜しいなと思うわけです。なぜ6行目まで等しくて、7行目以降等しくならないのか。それは今回のサイコロが正六面体であることに関係しているだろうということ。つまり、1列目の7行目以降は1ではなくて0なのでは、と考えました。更に辻褄が合いそうな計算方法を見つけました。 1 1 1 1 1 1 1 1+1-0=2 1+2-0=3 1+3-0=4 1+4-0=5 1+5-0=6 1 2+1-0=3 3+3-0=6 4+6-0=10 5+10-0=15 6+15-0=21 1 3+1-0=4 6+4-0=10 10+10-0=20 15+20-0=35 21+35-0=56 1 4+1-0=5 10+5-0=15 20+15-0=35 35+35-0=70 56+70-0=126 1 5+1-0=6 15+6-0=21 35+21-0=56 70+56-0=126 126+126-0=252 0 6+0-1=5 21+5-1=25 56+25-1=80 126+80-1=205 252+205-1=456 0 5+0-1=4 25+4-2=27 80+27-3=104 205+104-4=305 456+305-5=756 0 4+0-1=3 27+3-3=27 104+27-6=125 305+125-10=420 756+420-15=1161 0 3+0-1=2 27+2-4=25 125+25-10=140 420+140-20=540 1161+540-35=1666 0 2+0-1=1 25+1-5=21 140+21-15=146 540+146-35=651 1666+651-70=2247 0 21+0-6=15 146+15-21=140 651+140-56=735 2247+735-126=2856 0 15+0-5=10 140+10-25=125 735+125-80=780 2856+780-205=3431 0 10+0-4=6 125+6-27=104 780+104-104=780 3431+780-305=3906 0 6+0-3=3 104+3-27=80 780+80-125=735 3906+735-420=4221 0 3+0-2=1 80+1-25=56 735+56-140=651 4221+651-540=4332 0 56+0-21=35 651+35-146=540 4332+540-651=4221 0 35+0-15=20 540+20-140=420 4221+420-735=3906 0 20-0-10=10 420+10-125=305 3906+305-780=3431 0 10+0-6=4 305+4-104=205 3431+205-780=2856 0 4+0-3=1 205+1-80=126 2856+126-735=2247 0 126+0-56=70 2247+70-651=1666 0 70+0-35=35 1666+35-540=1161 0 35+0-20=15 1161+15-420=756 0 15+0-10=5 756+5-305=456 0 5+0-4=1 456+1-205=252 0 252+0-126=126 0 126+0-70=56 0 56+0-35=21 0 21+0-15=6 0 6+0-5=1 0 0 0 0 0 プログラミング言語的に書くと、1行目や1列目以外は、M[i][j] = M[i][j-1] + M[i-1][j]- M[i-1][5*i+6-j]といった計算をしています。この計算が正しいのかまではまだ解りませんが、今のところ正しそうではあるなというところです。証明出来ればいいんだけれども、自分にはその力がなさそうだ。今回は正六面体のサイコロを想定しましたが、他のサイコロも同様の考え方で分布の計算が出来そうだなと考えている。例えば、現実に存在する一般的なサイコロならば、正四面体、正六面体、正八面体、正十二面体、正二十面体の5つ。他にも正多面体ではないが、十面体を2個使って1から100までの出目のものもメジャーであったりする。現実的ではなくても、いくらでも拡張することが出来るだろう。また、出目の最大値が異なるサイコロを振るようなことも考えていくと面白いかなと思う。ではではa img { background-color: lightgray;}table.renbun td { border: 0px; padding: 2px 2px 2px 2px; vertical-align: middle; white-space: nowrap; }table.renbun td.ul { border-style: solid; border-width: 0px 0px 1px 0px; }table.renbun td.ol { border-style: solid; border-width: 1px 0px 0px 0px; }table.ans td:nth-child(1) { text-align: center; }table.ans td div { width: 265px; overflow-x: scroll; }table.ans td div span { white-space: nowrap; }table.test td {white-space: nowrap;padding: 0 5px;} .u {border-bottom-style: solid;border-bottom-width: 1px;text-align: center;}table#list td { padding: 0 2px; font-family: monospace; }.no { display:inline-block; text-align:center; vertical-align:middle;}.ni { display:inline-block; text-align:center; vertical-align:middle; line-height:100%;}.ns { font-family:serif; font-size:250%; line-height:100%;}.io { display:inline-block; white-space:nowrap;}.io sub { vertical-align:bottom; white-space:nowrap;}.io sup { vertical-align:top; white-space:nowrap;}.ii { display:inline-block; vertical-align:middle;}.is { vertical-align:middle; font-family:arial;// font-family: sans-serif; font-size:300%; line-height:70%; font-weight: 5;// margin: 0 -15px 0 -10px;}.ii2{ display:inline-block; line-height:100%; vertical-align:middle;}.is2{ line-height:155%;// line-height:109%; font-family:sans-serif;}.mo { display:inline-block; vertical-align:middle;}.mi { display:inline-block; white-space:nowrap; vertical-align:middle; line-height:100%;}html:not([lang]) .mp { display:inline-block; line-height:100%; font-size:120%; font-family:sans-serif; margin: 0; padding: 0;}.mp{ display:inline-block; line-height:100%; font-size:120%; font-family:serif; margin: 0; padding: 0;}.md{ display:inline-block; line-height:120%; text-align:right; margin: 0 5px;}.lo { display:inline-block; text-align:center; vertical-align:middle;}.li { display:inline-block; text-align:center; vertical-align:middle; line-height:100%; margin: 0 5px 0 0;}.ls { font-family:serif; font-size:120%; line-height:100%;}.fb {border-style:solid;border-width:1px 0 0 0;margin:1px 0;}.fo {display:inline-block;text-align:center;vertical-align:middle;white-space: nowrap;}.fo span {margin: 0 3px;}.fo span span {margin: 0 0;}.article table {white-space: nowrap;}.ro{display:inline-block;white-space:nowrap;line-height:100%;position:static;}.rt{font-family: 'Meiryo', 'YuGothic', 'Gothic', sans-serif;}.ri{display:inherit;border-style:solid;border-width:1px 0 0 0;padding:0 1px 0 1px;margin:1px 0 0 0;position:relative; left:-1.5px;}article table {margin-bottom: 0 !important;}article table td {white-space: nowrap;text-align: center;}