先刻、ゆびダイスという人力乱数生成器がTLを流れて行くのを見た。なんでも、
十分なサンプルにより安全性が確認されたため、全人類へのアップデートプログラムをミーム形式で無料配布いたします。また、物理的に印刷された情報の保存媒体(コースター)が四等星のゲーム購入時に付属します。このアップデートのインストールにより、人類は2人以上集まることで架空の6面ダイス(さいころ)を生み出し、乱数を発生させることが可能になります。生み出せるダイスの数は、2人ならば1個、3人以上ならば人数に等しい個数です。
とのことだ。
ホンマか?
ということで、ゆびダイスが生成する乱数がどれぐらい一様になるのか検証していくことにしよう。
ルールの分析
簡単のために、今回は2人でゆびダイスを使う場合についてのみ考える。1
ゆびダイスのルールは以下のようにまとめられる。
「0本から5本の範囲で、2人でおのおのゆびを出す。その和を6で割ったあまりを1D6の出目として扱う(割り切れた場合は6とみなす)」
で、これはどうなるのか?
解析
AさんとBさんがゆびダイスを用いて乱数を生成するとする。二人は人間なので、ゆびをX本出す確率は当然ちょうど1/6ではない。ここでその誤差について、Aさんがi本出す確率を、Bさんについても同様にと書くことにしよう。 定義より、明らかにである。についても同様。
まず、ゆびダイスの出目が5である場合について考える。 そうなるのは二人のゆびの本数がである場合なので、その確率は
よって、一様な場合からはだけの差がつく。 対称性から、他の出目の場合についても同様の結論が従う。
見たところ、誤差が二乗項になっているので実際の値としてはかなり小さそうだ。
より単純化した誤差評価
これだけではわかりにくいので、さらに単純化した場合についても考えてみよう。 AさんとBさんは人間だが、彼らはTRPGという場で相まみえるに至るまでにほとんど同様の文化的コンテクストの下で生育してきたので、彼らが生み出すゆびの本数の確率分布は完全に同一であった。 具体的には、0本のゆびを、1本のゆびを、それ以外の本数のゆびをの確率で出す。このような二人がゆびダイスを用いる場合、以下のような計算により、誤差はおおむねd2のオーダーにとどまる。つまり、ほとんどの全ての場合においてより小さく、一様乱数に近くなる。
考察
ゆびダイスが作り出す乱数は断じて一様ではないが、断じて一様ではないが、普通に指を出させるよりはより一様に近い乱数を生成することができると言えるだろう。1本のゆびを絶対に出さないと固く誓った場合(上記においてとした場合)でも誤差はたかだか程度にとどまるので、単純明快な実装のわりには十分な精度を出せているといってもよい。二乗項による減衰が強く効いている。
また、誤差の大きさと同様に興味深いのが、ゆびダイスにおいては出目を操作したい場合についての最適な戦略が存在しないことだ。出目の誤差がの形で記述されていることからもわかる通り、相手のゆびの出し方が完全に一様であるならば、こちらがどういう風に出し方を工夫しても出目の分布は一様になってしまう。例えば出目をできるだけ大きくしたい、というような目的があったとしても、ゆびの出し方を工夫することによってその目的に適う最適な戦略を創出することができない。
相手のゆびの出し方の確率分布を推測できる、いわば「読み」を交えられるならその限りでもないが(あるいはそこに生まれる駆け引きを楽しむのも一興だろうが、ルール自体はじゃんけんと同じくらいに対称だ)、このように単純明快なルールから競争的な乱数生成にも耐えられるようなシステムが出来上がっているのは興味深いことだ。
結論
ゆびダイスはじゃんけんの勝敗と同様くらいに確からしい乱数を生成できる──じゃんけんと同じくらいではあるけど。
- 3人以上でゆびダイスを使う場合の出目のばらつきについてはhttps://gamemarket.jp/blog/190519においてある程度の補足がなされている。↩