猿がシェイクスピアの名を知るまで

猿が猿を作る(理論編)


 E〇CELとは、Mi〇rosoft社が開発・販売している表計算ソフトである。

 事務作業には必須の代物であり、書店でも関連書籍が多数売られている。設計書やレポートの作成、進捗管理の為に、社会人のみならず、学生も多く利用しているはずだ――ソフトのW〇RDを差し置いてまで。

 さて、このE〇CELは先述の通り、本来は表計算の為に用いられるソフトであるため、平均や合計の算出、文字列の取得や結合といった機能が「関数」として定義されており、セル内で自由に用いることが出来る。

 関数の種類は数百種類にも渡っており、実行できる機能も多岐に渡る。更に言えば、マクロ言語を用いたプログラム作成も可能であり、Web情報の取得から、果てはゲーム制作までをも行える。E〇CELは「一番知名度の高いアプリケーション開発環境」と呼んでも差し支えない。


 話が大いにそれてしまった――つまりこの章では、E〇CELの関数を用いて「猿」を作りだそうという訳である。

『無限の猿定理』に登場する猿は、タイプライターに関して何も知らず、力任せに叩きつけることしかできない。よって、出される文字は全てランダムという訳だ。

 その状況を簡単に作りだせる関数がある。その名は「rand」――文字通り、無作為な数字を返す。その範囲は0 以上1 未満の小数であり、小数点以下の桁数を考慮しない。つまり、0.3の場合もあれば、0.12345678の場合もある。0.9999999 はあるが、1 はないと思えばいい。

 そして、出力された値を10倍してやれば――結果として0 以上10未満の乱数が取得できるようになる。これによって小さい値が出にくくなり、無作為でなんてことは勿論ない。0.1が10 倍されて 1になっても、これにより空いた0.1 の座には0.01が座るだけの話である。先述した通り、0.1が出る確率と0.0000…001が出る確率は等しく同じである。

 また、数値を出力させたら、小数点以下の部分は不要となるので、セルの書式設定を開き、数値の「小数点以下の桁数」を0 にしてしまえば、整数の部分しか出力されなくなる(その場合、小数点以下の値は切り捨てとなる)。

 ここまでは理解していただけただろうか。では次に「タイプライター」側、対象となる文字列の方を考えてみる。

 大文字のアルファベットを対象にして考えると、全部でA~Zの26種類ある。アラビア数字ならば10種類、五十音ならば46種類。これらを合計すれば82種類になる。

 出力する文字のバリエーションが決まったら、これらの文字に対して、を付けていく。例えば、0 が出たらAを出力する、1 が出たらB、2 が出たらCといった具合に。これにより、rand関数で出た乱数次第で、無作為に文字を出力させることが出来るようになる。


 さて、無作為に文字を出力する理論自体は、説明し終えた。

 次回はこれを用いて実際に「カタカナ」を無作為に出力させてみる。

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る