サイコロ #10

さて、ダイスを何回でも振ることのできるルールの場合はどう書けばいいだろう。
何回でも振れるなら一試行で得られる点数はいくらにでもなりうる。
したがって、カウンタ配列を得点の取りうる範囲分だけ準備する方法は厳密には取れない。
しかし、例えば一億回の試行で10回以上振ることができる事象は何回くらい発生するかというと、
100000000\times 6^{-(10-1)}\approx 9.92回程度である。
試しにdice3.cにおいてNTに10を指定すると、

16663219 16671399 16667098 16667883 16667095 2780012 2779140 2777955 2776797 2774489 463205 462493 461583 463864 461790
        77210 77093 76733 77060 76903 13082 12850 12577 12795 12821 2126 2096 2149 2172 2148 346 369 381 335 349 67 60 
        64 58 66 10 9 13 14 9 2 0 6 2 1 2 100000000
1.000115 0.999842 0.999986 0.999959 0.999986 1.999551 1.999726 1.999964 2.000197 2.000661 2.999708 3.000567 3.001666
        2.998915 3.001416 3.999642 4.000488 4.003101 4.000727 4.001866 4.990451 5.000438 5.012423 5.002832 5.001699
        6.004535 6.012467 5.998530 5.992588 5.998790 7.017818 6.981899 6.964038 7.035850 7.013000 7.934094 7.995680
        7.959661 8.014601 7.942487 8.995680 9.054483 8.849252 8.807892 9.054483 9.893925 inf 9.280778 9.893925
        10.280778 9.893925
2.999515

10回振ることができた試行数は2+0+6+2+1+2=13回である。
このように振る回数が増えるにしたがって指数関数的にその事象が発生する確率は減少する。
上の結果の場合であれば、13回の試行のうち何回が例えばさらに10回振ることができるのかということだが、
そこまで至る可能性はほとんどないだろうと思われる。
実際、NTが20の場合の結果は、

16663219 16671400 16667098 16667883 16667094 2780012 2779140 2777955 2776797 2774489 463205 462493 461583 463864 461790
        77210 77093 76733 77060 76903 13082 12850 12577 12795 12821 2126 2096 2149 2172 2148 346 369 381 335 349 67 60 
        64 58 66 10 9 13 14 9 2 0 6 2 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
        0 0 0 0 0 0 0 0 0 0 0 100000000
1.000115 0.999842 0.999986 0.999959 0.999986 1.999551 1.999726 1.999964 2.000197 2.000661 2.999708 3.000567 3.001666
        2.998915 3.001416 3.999642 4.000488 4.003101 4.000727 4.001866 4.990451 5.000438 5.012423 5.002832 5.001699
        6.004535 6.012467 5.998530 5.992588 5.998790 7.017818 6.981899 6.964038 7.035850 7.013000 7.934094 7.995680
        7.959661 8.014601 7.942487 8.995680 9.054483 8.849252 8.807892 9.054483 9.893925 inf 9.280778 9.893925
        10.280778 inf inf inf 10.280778 10.280778 inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf
        inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf inf
        inf
2.999516

11回目を振れた試行が2回あるが、12回以上のものはない。
NTが10の場合とは振る回数の違いによって乱数のシーケンスの使われ方が変化していることには注意。
つまり、この条件下ではNTが20程度もあれば、
無限回の振りなおしのシミュレーションになっているといえると思う。
異なる乱数シーケンスによって20回振ることができ、
さらに振ることができうるような危険な状況だった場合でも、
20回振ったことは結果から判別できるのでその危険を察知できる。

一億回の試行の得点の平均値はちょうどほぼ3であり#4で示した得点の期待値に一致している。