「無限の猿定理」と暗号の技術

「無限の猿定理」というのをご存じだろうか。ランダムに文字列をつくり続けていけば、どんな文字列もいつかは出来上がるという定理だ。

たとえば、猿にパソコンのキーボードを適当に打たせることで、ウィリアム・シェイクスピアの著作『ハムレット』『マクベス』や『ロミオとジュリエット』などを、いつかは書き上げることが可能であるというものだ。無限の猿定理に関連する観念は古くから考えられており、古代ギリシャの哲学者アリストテレスまでさかのぼるともいわれている。

では、実際にそんなことが可能かどうかを検証していくことにしよう。ここでは話をわかりやすくするために、パソコンのキーボードのキーが100個あると仮定して説明する。そして、「hamlet(ハムレット)」という6文字の単語を、猿がランダムにキーを叩いてつくるとする。

まず、「h」を打つ確率は100分の1、「a」も100分の1、「m」も100分の1、「l」も100分の1……となり、6文字がきちんとタイプされる確率は、図のように100分の1の6乗、つまり1兆分の1になる(図参照)。とてつもなく低い確率ではあるが、確かにゼロではない。猿がランダムに6個のキーを打つ操作をずっと繰り返せば、理論上「hamlet」という文字列がいずれは出来上がることになる。

同様に文字数が10文字、100文字、1000文字……と増えていけば、それだけ文字列が完成する確率は低くなっていくが、それでも決してゼロになることはない。いつかは10文字、100文字、1000文字の文章を書き上げられる可能性があるのだ。したがって、膨大な文字数で構成されるシェイクスピアの著作であっても、猿がランダムにキーを叩き続けていれば、いずれは完成させることが理論上は可能なのである。

もちろん、その可能性は極めて低く、完成に要する時間の期待値は想像を絶する長さとなる。仮に1秒間に1億文字が打てるとしても、わずか100文字の文章を完成させるのに要する時間は、「およそ100億年の1無量大数倍の1京倍(1の後に0が94個の年数)」という天文学的な数字になる。そう考えると、猿が『ハムレット』や『ロミオとジュリエット』を書き上げるのにかかる時間の途方もなさが想像できるだろう。

ところで、この「無限の猿定理」は、実は「暗号」と深いつながりがある。現在、ネット上の情報のやり取りなどで使われている暗号は「公開鍵暗号」とよばれるもので、数学の素数の積と素因数分解を応用して開発されたものなのである。