猿が猿を作る(実践編)
いよいよ、猿を作る時がやってきた。
狭い空間の中で、考えることも諦めることも出来ずに、タイプライターを延々と打ち続ける、不死の存在――
そんな風に捉えると残酷な所業に見えるが、豚や牛の命すら喰らう私に、文字や変数の気持ちを察せる狂気などないのである。
私は「無限の猿定理」のファイルを開いた。
シートには、真っ白のセルの塊が格子状に広がっている。
今回の検証では「カタカナ」を対象にして、無作為に文字を出力してみる。
カタカナのバリエーションについてだが――まず、アからンまでの46 種類、更に「ガギグゲゴ」といった濁音のものが21 種類(ガ行、ザ行、ダ行、バ行、ヴ)、半濁音のものが5種類(パ行)、拗音や促音といった「小さい文字」(ァ行、ャ行、ッ、ヮ)が10種類、長音符(-)が1種類と、合計83 種類となる。
(ここでは厳密にはカタカナではないヵ、ヶと、イ、エの旧仮名遣いとなるヰ、ヱは除外している。逆に、長音符についてはカタカナではないが、外来語を表現する為に採用している)
次に手順について。
まず、A列に0 から82までの連番を振り、B列に先述した83種類のカタカナを1文字ずつ入力していく。例を出すと、A1のセルに「0」、B1のセルに「ア」、A2のセルに「1」、B2のセルに「イ」……といった具合だ。
そしてC1には猿の知能たる――rand関数を用意する。ここで「=rand()*83」と入力することで、0以上83未満の数値が無作為に表示されるようになる。小数部は邪魔なので、右クリックからセルの書式設定を開き、数値の「小数点以下の桁数」を0 にしておく。
これにより「0から82までの数字を、それぞれ83分の1の確率で表示する」セルが完成した。あとは、C1の出力結果に基づき、A列の番号に対応するB列のカタカナを取得するだけだ。この結果をD1のセルに表示させれば、猿のタイプライティング実験は完了する。
分かり難い表現で申し訳ないが、この作業は――『猿の(無作為な)思考結果を、文字に変換している』ということになる。
変換作業についての実現方法だが、E〇CELには、特定の値を検索する関数も定義されているので、それを用いる。
関数の名前は「vlookup」――ブイルックアップと読み、使いこなせると実に事務作業が捗る、魔法のような関数である。
使い方については、検索をする時を想像すれば分かりやすい。まず、検索したい値を入力し、その次に検索する範囲を指定する。そして見つかった時の反応(どのセルの値を返すか)を定義すればよい。
(厳密に言えば、完全一致か部分一致かを決める箇所もあるが、今回は省略する。その場合は、部分一致で検索を行う)
以上に従って定義した一例が「=vlookup(C1,$A$1:$B$83,2)」である。
簡単に説明すると、C1の値(rand関数の結果)について、A列とB列を検索し、値が発見出来たら、その行のB列の値を取得するというものだ。
C1は必ず、0から82までの値になるので、A列のいずれかの値と一致する。結果として、D1には無作為なカタカナ(B列の値)が設定されるという訳である。
ちなみに、妙な「$」が付いているのは、『絶対参照』と呼ばれているもので、こうしておくと、この計算式を他のセルにコピペしても、同じ場所を参照する――この小説はE〇CEL講座ではないので、ここで割愛するが。
これでともかく、無作為に文字を出力することには成功した。
しかし、感慨に浸っている場合ではない。『無限の猿定理』の長く険しい道は、これから始まるのだから。そして、私の「(根暗)インテリ」への道も、これから始まるのだから!!
……ちなみに、記念すべき最初のタイプ文字は――「マ」であった。
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます