誕生日パラドックスと復元抽出の怖さ
今回は久しぶりにarXivを探訪したので次の論文を紹介する。
Boaz Tsaban. Bernoulli Numbers and the Probability of a Birthday Surprise. arXiv:math/0304028v4 [math.NA] 17 May 2007.
タイトルにあるBirthday Surpriseとは、日本では誕生日のパラドックスと呼ばれており、学校や職場などのある集団において、同じ誕生日の人が「結構な確率で」少なくとも一組は存在することを主張する。一年365日という可能性に比べれば予想外に多いので、直観に反するように感じる。Wikipediaの記事に依れば23人以上集まれば50%以上の確率でダブりが出るそうだ。確率計算が直観に反する好例として中学とかの教科書に取り上げられることも多い。
用語
数学的に定式化しよう。元集合から個の元を取り出す(復元抽出)とき、少なくとも2つが同一である確率をと置く。これを直接立式するのは極めて困難だが、全てが異なる確率
を用いればとなり計算できる。ただしもも大きくなると物理的に難しくなるので、近似的に値を求めることができたら嬉しい。誕生日の例だと微妙だが、例えばあるインターネットサービスのパスワードが通りあったとして、人のアカウントのパスワードのどれかが「偶然」一致してしまう確率、と考えればその重要性は増すだろう。
因みに誕生日が重なる回数の期待値は簡単に求めることができる。確率変数を、番目に取り出した元と番目の元が一致するとき、異なるときを取るように定めれば、その期待値は
で計算できる。のときであれば期待値は以上となる。人クラスなら期待値はなので、二組程度はいることになる。(3人一致すると回数は3とカウントしていることに注意。)
論文で述べられている内容
は積の形なので、対数を取ってみる。に注意すれば、
となる。ここでと置き、これを評価してみよう。
補題 実数値関数は適度な領域で定義され、適度に滑らかとする。であるとき、
が成り立つ。
(証明)区間を考えれば、二階微分(傾きの変化率)が非負なので、におけるの接線は、常にグラフの下側を通る。そこで接線が為す台形の面積はに等しいため、
が成り立つ。
補題をに対して用いれば
を得る。ここでに対して
と計算できる。すると結局
となり、任意の精度で近似できる。この上限と下限をと置く。一般に奇数に対して
がのとき成り立つ。この条件はのときとなり満たされるので、このとき
となる。これを用いて近似的に求めることができる。
所感
論文に依れば極めて良い精度で計算できるそう。ただが大きくなると下の式は使えないので、対数を取る方法は芳しくない。この場合は、どちらかと言えば期待値を見た方が良いかもしれない。(別の基準になってしまうが。)
似たような話題として、プレゼント抽選会も割とパラドックスを感じやすいと気づいた。個のプレゼントを無作為に人に分配することを考える。一般にベルヌーイ試行を独立に複数回行う(復元抽出)と、当たりの個数は二項分布に従う。このサイトで確率0.01、試行回数100として計算すると、0個、1個、2個以上で大体3等分されることが分かる。(意味のある値に収束することを証明できる気がしないでもない。)つまり一個も当たらない人が結構いる一方で、二個も三個も当たる人が出てしまう。参加者の不満が募ったり、裏があるのではと勘繰ったりしてしまうことを避けるためにも、当選者を除く(非復元抽出)などしたほうが良いだろう。
疑似乱数について その1 線型合同法の最大周期条件
用語と例
少し用語を整理しよう。線型合同法により生成される疑似乱数列は、組が与えられたとき漸化式で定められる。(は整数かつを満たす。*1)が取る状態の数は有限なので、必ずどこかで軌道が交わる。つまりあるが存在してが成り立つ。このときならが常に成り立ち周期的になる。そこでを組の周期(period)と呼び、特にとしてよいとき巡回的(cyclic)と呼ぶ。疑似乱数としての役割を考えれば周期は長ければ長い方が良い。一般に周期を取る組は、初期値を変えてもその周期は変わらない。このようなとき組を理想的な組と呼ぶことにする。
例えばを考えると、
という列を生成する。これは巡回的かつ周期はであるからに等しい。従っては理想的な組となる。注目すべきはその並びであり、一見しただけではその法則が分からないので疑似的な乱数と思える。疑似乱数として使うときは普通全体をで割る。
次はを考えよう。生成される列は
となる。上は巡回的だが、のときは巡回的ではない。もちろん理想的ではない。
周期が複数ある場合も存在する。が生成する列は
となる。それぞれは巡回的だが、周期は短く数の並びも予測し易い。
最大周期条件
組が理想的となる条件(最大周期条件)を求めたい。そのためには周期を直接求めるのではなく、まず部分的な場合に帰着させることを考える。
補題 組が生成する列は巡回的で、周期はとする。を素因数分解としよう。各への剰余で与えられる組が生成する列(剰余列と呼ぶことにする)も巡回的で、周期はとする。このときはの最小公倍数となる。
(証明)は互いに素として、が生成する列を、への剰余で得られる組が生成する列をそれぞれとする。何れも巡回的で、周期はとする。このときがの最小公倍数であることを示せば良い。
まずであり、帰納的に
となるのでとなる。同様にを得る。それぞれの生成列が巡回的であることと、が互いに素であることからとは同値になる。従っての最小公倍数をと置けば、よりを得るのでが言える。一方よりを得るのでも言える。故にとなる。
つまりとなるためにはとなる必要があり、逆もまた然りということになる。何れも巡回的という条件はあるが(外せるかもしれないけど面倒そう)、素数冪に落とせるのは都合が良い。
元の問題に戻って、巡回的となる条件を調べてみよう。つまりとなるが存在する条件を考える。を計算すれば
と同値になる。で括ればとなるが、これが適当なで成り立つときは巡回的となり、常にであるときは巡回的とならない。例えば先ほどの二番目の例()だと、はを繰り返し、またのときなので積はゼロにならない。よって巡回的ではない。
得られた式は変数が多く難しいが、
とき、もと互いに素となり、式はになる。実は次が成り立つ。
命題 を素数、はで割り切れるとする。このとき
が成り立つ。更にとなる最小のをと置くとき、であることと、またはであることは同値になる。
(証明)まずのときはが成り立つ。とすれば、より及びを用いてと表せる。このとき
となる。これがのときで割り切れることを示せばよい。ここで二項係数の部分は
であり、括弧の中身は再び二項係数、特に整数となる。問題なのは分母のだが、に現れる素因数の個数は
より少ない。つまり以下となる。分子に現れる個数は以上であるため、よりを括りだせることが分かる。
とする。のときとすると、はが回続くのでその和はとなる。これはで割り切れてしまい、最小性に反する。従ってを得る。
最後に逆を示そう。と置けば
を得る。最小性からが従うのでとなる。つまりはの冪であることが分かる。同様な方法でより大きい冪のなら常にとなるので、結局のときゼロにならないことを示せば十分である。
先ほどと同じようにと置いて計算すると、第一項目()はとなりで割り切れない。そこで第二項目以降()がで割り切れることを示せば良い。のときはなので一つ余分に括りだせる。のときはであることが必要となるが、仮定よりだから条件を満たす。
議論が込み入ってきたが準備はこれで整った。線型合同法における理想的な組は次で特徴付けられる。
定理 組が理想的であることと、以下の三条件を満たすことは同値である。
- とは互いに素である。
- の素因数はを割り切る。
- のときである。
(証明)三条件を満たすとする。初期値を取り列を作る。まずはこれが巡回的であることを示そう。条件よりとなるが存在すればよい。とする。まず条件よりとなるが存在する。(剰余列は巡回的である。)と置けば良い。従ってが生成する疑似乱数列は巡回的である。更に周期は、補題より各剰余列の周期の最小公倍数となる。ここで命題よりが従うから、その最小公倍数はである。故にを得る。つまりは理想的である。
逆にが理想的であるとしよう。とが共通素因数を持つとする。が生成する列を調べると、が成り立つ。一方だから、はを取り得ない。つまり理想的であることに反する。よってとは互いに素である。次にだがとなるが存在すると仮定する。理想的だから剰余列も理想的であるはずだが、とが互いに素であることから、適当なが存在してとできる。このときを考えると、剰余列においてが成り立つ。これは周期がであることを意味する。これは矛盾する。故にならでなければならない。後は命題よりならも従う。
所感
Hull-Dobellの論文は三条件を満たすなら理想的であることを証明している。上の議論の殆どはこれを参考にしたが、ギャップを少し自分で埋めた。Knuthの本はHull-Dobellの結果を整理する形で紹介しているが同値性まで主張している。でもきちんと証明されているかというと正直微妙な印象はある。(自分の頭が足りないのだろう。時間が掛かったのは修正に苦労したせい。)ちなみにが冪の場合はHull-Dobellより早くM.GreenbergerがJACM 8(1961),383-389で証明しているらしい。興味があれば探してみても良いかもしれない。
あと別件ですが、「ざっくり学ぶ可換環論」のpdfは公開場所を変えようと思います。マイクロソフトアカウントが一時保留にされてしまい、別アカを取ったのですが再度保留になったのでいい加減面倒になりました。Docs.comに登録してない別アカは大丈夫みたいなので、恐らくですがDocs.comからのアドレス流出がある可能性が高いです。(それが迷惑メール等の偽装アドレスとして使われまくってる?)
参考文献
[1] Donald E.Knuth. The Art of Computer Programming, Second Edition, Volume 2.
[2] T.E.Hull, A.R.Dobell. Random Number Generators. SIAM Review, Vol.4, No.3, July, 1962. pp.230-254.
*1:一般論を扱うときは乗算型合同法()も一緒に考える。
疑似乱数について その0
某所でメルセンヌ・ツイスターの話題があり、その仕組みを知りたくなって勉強を始めた。とは言え疑似乱数とは何ぞや? 程度の知識しか無いため、当面はウィキペディアの受け売りになるけど纏めていく。
まずノイマン(John von Neumann)の貢献があって計算機が登場し、それと同時発生的に疑似乱数(pseudo random number)という概念が議論されるようになった。何故かと言うと計算機の目的はシミュレーションにあって、例えばウラム(Ulam)*1が考案した方法(モンテカルロ法)は中性子の動きを調べるのに用いられたそうだ。ただし乱数といっても疑似であり、その実体は与えられた初期値より漸次的に決まる数列を指す(数に限らないけど)。特にコンピュータは有限個の状態しか取れないので、その数列は必ず周期を持つので完璧な? 乱数とは程遠い。それでも周期が長かったり、出現する値が一様に分布していれば「乱数っぽい」だろう。この「乱数っぽさ」は統計的な検定手法により示すことができる。こうした検定を通り、また記憶装置や実行時間、実装のし易さなどの物理的制約も考慮されて、様々な要件を満たしたものが標準化されて一般的に用いられる。
理論、アルゴリズム、回路、実装(プログラム)など様々なレベルでの疑似乱数が研究されている。
ノイマンが最初に考案した方法(1946)は個人的に衝撃的だった。その名を平方採中法(middle-square method)という。桁の数を用意し、それを乗して中央の桁をとする。初期値の取り方で周期は変化するが高々程度になる。とにかく欠点だらけで、まず数学的に意味を見出しにくいのと、その結果として最大周期の判定法が分からないことがある。そして乗しているのでを大きくすると巨大数同士の掛け算となり大変である。この大変さはイベントMATH POWER 2016を観れば実感できる。カオスのことを考えれば乗するのは分からなくもない。でもいきなり非線形でそれをノイマンが言ってるのが面白い。当時のコンピュータは扱える桁数が少ないのもあったかもしれない。
いやこれはダメだろ、と思ったかは分からないがLehmerが1949年に発表した乗算型合同法(multiplicative congruential method)はずっと簡素にで定義される。の取り方で周期が変わるが、最大周期を判定する(効率の良い)方法がある(後述)。ちなみに最大周期を取るなら初期値はでなければ何でもよい。先ほどと比べて、こちらは定数の乗算しかないのでシフト演算と(排他的論理)和で実現でき、実装も簡単なので嬉しい。
少し改良したのが線型合同法(linear congruential method)である。混合型(mixed-)とも呼ばれ、で定義される。こちらも最大周期を判定する方法がある。最近まで標準だったので今でも使われているらしい。色々と問題の指摘は受けてきたが、それを解消し続けてきた歴史もある。お遊び目的なら良し、でも時代遅れ。
線型帰還シフトレジスタ(LFSR: Linear Feedback Shift Register)*2やGFSR(Galois ?)は複数のシフト演算と和で漸次的に計算する方法。生成式の二元体での規約性とかで最大周期を生成するかが決まるのかな? 要検証。松本、栗田(1992、94)はGFSRを行列で捻ってTwisted GFSRを作り、それを更に発展させたのがメルセンヌ・ツイスター(Mersenne-Twister)だそうだ。
次回は線型合同法に関する最大周期条件、の予定。参考文献は後でまとめて書きます。