無限の猿定理マシン

デイリーポータルZ

数学界の有名な話の一つに「猿がタイプライターの鍵盤をいつまでもランダムに叩きつづければ、シェイクスピアの作品を打ち出す」というものがある。実際にやってみた。

猿が無限にタイプライターを叩くということ

それは無限の猿定理と呼ばれる。本質は「ランダムな文字入力を無制限に続けていれば、どんな言葉もいつかはできる」ということだ。どんなに小さい確率でも、無限に近い回数試行すればいつかは起きる。

猿がやみくもに無制限に入力すれば、どんな言葉もいつかはできる。

お猿さんがタイプライターをずっと叩いているのを見守るのは面白いだろう。実現することにした。あいにく身近なところに猿がいないので、本物の猿ではなく電動ダイス振り器を利用する。

無限の猿定理マシン

それが、これである。

猿(概念)がタイプライター(概念)を使って入力するマシン。

仕組みはこんな感じ。

003.jpg
母音が書かれたダイスと子音が書かれたダイスを自動で振って、ひらがな1文字を決定する。これを猿によるランダムな入力とみなすのだ。

実際に動かしてみよう。

15秒に1回、ダイスが振られて、
カメラがダイスの目を読み取る。「K」「E」「け」だ。
したがって今回は「け」と入力。これを無限にやる。

このマシンのすごいところは、完全に自動化しているということだ。放っておけば無限にダイスが振られ、無限に入力が行われる。ということは、このマシンはそのうちシェイクスピアの作品を入力するのだ。

こんな小さいマシンなのに宇宙の年齢を超えるような壮大な時間の話をしている。なんかそういうところに神秘やロマンを感じてしまう。

いったん広告です

無限の猿定理マシンの作り方

実際の実験の様子は最後に回すとして、まずはこのイカれたマシンの作り方を紹介したい。

最初に断っておくが、「わざわざ実物のダイスを振らなくてもプログラミングでランダム文字列生成すればいいじゃん」という野暮な指摘はご遠慮いただきたい。それでは猿がタイプライターを叩いたことにはならないし、まるでロマンがない。私はロマンの話をしている。

最も重要なのはダイスを振る機構。これは電動ダイス振り器を改造した。

007.jpg
Arduino(電子工作用のマイコン)とモーターをつなげて、パソコンからの指示でダイスを振るようにしている。

ダイスは母音を表す六面体と、子音を表す十面体を用意した。2つのダイスの組み合わせで「あ」から「ん」までの46字を表す。

どの字も等確率で出現する。文字の割り当たっていない組み合わせが出た場合は振り直し。

やっかいなのが、ダイスの出た目をカメラで読み取る機構である。

カメラ自体は醤油の箱に固定している。あまりにも無骨。

ダイスの出た目の認識には畳み込みニューラルネットワークという機械学習技術を用いている。あらかじめコンピュータに何枚も正解を覚えさせておくことで、新たにカメラで撮影したダイスの目も判断できるようになる。

010.jpg
こんな感じ。かなりデフォルメしてますので、詳細が気になる方は筆者のブログを読んでください

さらには、途中で見つかった言葉を表示する仕掛けも用意した。

3文字以上の言葉が見つかると右下のエリアに表示される。

ちなみに、濁点や小さい文字や伸ばし棒などは考慮せず、46字の入力のみですべてカバーできるようにした。例えば、「シャーベット」という言葉は「しやあへつと」と入力されたときに見つかる。

⏩ いよいよ実験!!

Source

タイトルとURLをコピーしました