数学界の有名な話の一つに「猿がタイプライターの鍵盤をいつまでもランダムに叩きつづければ、シェイクスピアの作品を打ち出す」というものがある。実際にやってみた。
猿が無限にタイプライターを叩くということ
それは無限の猿定理と呼ばれる。本質は「ランダムな文字入力を無制限に続けていれば、どんな言葉もいつかはできる」ということだ。どんなに小さい確率でも、無限に近い回数試行すればいつかは起きる。
お猿さんがタイプライターをずっと叩いているのを見守るのは面白いだろう。実現することにした。あいにく身近なところに猿がいないので、本物の猿ではなく電動ダイス振り器を利用する。
無限の猿定理マシン
それが、これである。
仕組みはこんな感じ。
実際に動かしてみよう。
このマシンのすごいところは、完全に自動化しているということだ。放っておけば無限にダイスが振られ、無限に入力が行われる。ということは、このマシンはそのうちシェイクスピアの作品を入力するのだ。
こんな小さいマシンなのに宇宙の年齢を超えるような壮大な時間の話をしている。なんかそういうところに神秘やロマンを感じてしまう。
無限の猿定理マシンの作り方
実際の実験の様子は最後に回すとして、まずはこのイカれたマシンの作り方を紹介したい。
最初に断っておくが、「わざわざ実物のダイスを振らなくてもプログラミングでランダム文字列生成すればいいじゃん」という野暮な指摘はご遠慮いただきたい。それでは猿がタイプライターを叩いたことにはならないし、まるでロマンがない。私はロマンの話をしている。
最も重要なのはダイスを振る機構。これは電動ダイス振り器を改造した。
ダイスは母音を表す六面体と、子音を表す十面体を用意した。2つのダイスの組み合わせで「あ」から「ん」までの46字を表す。
やっかいなのが、ダイスの出た目をカメラで読み取る機構である。
ダイスの出た目の認識には畳み込みニューラルネットワークという機械学習技術を用いている。あらかじめコンピュータに何枚も正解を覚えさせておくことで、新たにカメラで撮影したダイスの目も判断できるようになる。
さらには、途中で見つかった言葉を表示する仕掛けも用意した。
ちなみに、濁点や小さい文字や伸ばし棒などは考慮せず、46字の入力のみですべてカバーできるようにした。例えば、「シャーベット」という言葉は「しやあへつと」と入力されたときに見つかる。