猿がシェイクスピアの名を知るまで
猿が猿を作る(理論編)
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関数で出た乱数次第で、無作為に文字を出力させることが出来るようになる。
さて、無作為に文字を出力する理論自体は、説明し終えた。
次回はこれを用いて実際に「カタカナ」を無作為に出力させてみる。
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます