無限の猿定理を、サイト上に実装しました。自由に打ち込んだ文字列を、猿が適当にタイプライターを打つことで再現しようと試みます。
上の埋め込み内でも使えますが、うまく動かない・大きなページで使いたいというときは、元の無限の猿定理サイトツールページへ(新しいタブで開きます)。
無限の猿定理とは?サイトに実装してみた!
「無限の猿定理(無限のサル定理)」英語では”Infinite Monkey Theorem”とは、
“無限にランダムにタイプを続けるサルがいれば、いつかシェイクスピア全集を打ち出す”
という有名な数学・確率論のたとえ話です。
これは要するに、「無限回の試行があれば、確率的にどんな文字列も出現し得る」という話。
現実のサルがタイプライターを叩くわけではありませんが、
プログラム上でこの考え方をシミュレーションしてみると、とても面白い動きを見せてくれます。
今回紹介するこの「無限の猿定理シミュレーション」サイトツールでは、ユーザーが入力した任意の文字列(例:hello や 42 など)を目標として、仮想のサルが延々とランダムにタイプを続けます。
そして、運が良ければ目標文字列が生成される瞬間を目撃できるかもしれません!
また、ただ単に文字を出すだけでなく、
目標文字列との一致部分を 1文字一致=青、2文字以上の連続一致=赤 で強調表示する仕組みも搭載。
「今どのくらい近づいているか」を視覚的に楽しめます。
無限の猿定理サイトツールの使い方
- サイトを開いたら、
中央上部の入力欄に目標文字列を入力します。
(使える文字は「小文字・数字・.,!?」のみ) - 「サルに打たせる」ボタンを押すと、シミュレーションが開始します。
- 画面中央の白いエリアに、サルがタイプした文字列が次々と現れます。
青や赤の色が付く部分は、目標文字列に近い部分を示しています。 - 画面下部には、経過時間が表示されています。
- サルが偶然、完全に一致する文字列を打ち出したら、
「✅ 成功!かかった時間:〇秒」と表示され、シミュレーションが自動で停止します。 - 「停止」ボタンを押せば途中で止めることも可能。
「リセット」ボタンで完全に最初の状態に戻せます。
猿が打ち出すまでの時間比較(体感目安)
このツールは確率的な試行なので、結果は完全にランダム。
それでも、おおよその目安として次のような傾向があります👇
| 目標文字列の長さ | 出現までの目安 | 備考 |
|---|---|---|
| 1文字 | すぐ(数ミリ秒〜数秒) | 文字セットが約40種類なので、1/40の確率で即ヒット。 |
| 2文字 | 数十秒程度 | 40×40=1600通りの組み合わせ。運が良ければすぐ出る。 |
| 3文字 | 数分程度(やや運が必要) | 40³=約6.4万通り。かなり低確率。 |
| 4文字 | よほど運が良ければ出るかも? | 40⁴=約256万通り。ほぼ奇跡的。 |
| 5文字以上 | 現実的には出ない | 40⁵=約1億通り以上。現実的な時間ではまず不可能。 |
やってみた感じ、1文字や2文字の短い単語ならすぐ出ます。
3文字だと「お、出た!」という瞬間に立ち会えることもありますが、4文字以上になると“運試し”の領域に突入します。
このツールでは最大1時間のタイムアウトが設定されているため、5文字以上を完全一致で出すのは、もはや「宇宙的な運」が必要です。
注意点
- ⏱ タイムアウトあり:
1時間(3600秒)経過すると、自動的にシミュレーションは停止します。
(これにより無限ループやブラウザ負荷の防止ができます) - 🧠 ブラウザの制限について:
このシミュレーションは JavaScript のsetIntervalによって動いています。
そのため、別のタブを最前面にしてしまうと、
ブラウザの仕様により一時的に処理が停止(または低速化)することがあります。
結果的に「経過時間」は止まらず進みますが、
実際のシミュレーション進行はその間やや遅くなります。 - 🐵 ランダム生成なので成功は保証されません:
1文字や2文字の短い文字列ならすぐ成功しますが、
長い文字列ほど指数関数的に成功確率が下がります。
たとえば「banana」を出すには、運がよほど良くないと難しいでしょう。
まとめ
- 「無限の猿定理」を実際に可視化した体験型シミュレーションツール。
- 目標文字列を入力すると、仮想サルがランダムにタイプして再現を試みる。
- 一致部分が色付きで表示されるため、進行状況を視覚的に確認可能。
- 1時間で自動的に停止するタイムアウト機能を搭載。
- ブラウザを別タブに切り替えると一時停止する場合がある。
- 長い文字列を完全一致させるのは「天文学的に難しい」けれど、それが面白い。
このツールは、偶然と確率の世界をそのまま体験できる小さな実験室。
あなたのサルは、いつか「奇跡の一文」を打ち出せるでしょうか?🐒✨


