猿が猿を作る(実践編)


 いよいよ、猿を作る時がやってきた。

 狭い空間の中で、考えることも諦めることも出来ずに、タイプライターを延々と打ち続ける、不死の存在――

 そんな風に捉えると残酷な所業に見えるが、豚や牛の命すら喰らう私に、文字や変数の気持ちを察せる狂気などないのである。

 私は「無限の猿定理」のファイルを開いた。

 シートには、真っ白のセルの塊が格子状に広がっている。


 今回の検証では「カタカナ」を対象にして、無作為に文字を出力してみる。

 カタカナのバリエーションについてだが――まず、アからンまでの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講座ではないので、ここで割愛するが。


 これでともかく、無作為に文字を出力することには成功した。

 しかし、感慨に浸っている場合ではない。『無限の猿定理』の長く険しい道は、これから始まるのだから。そして、私の「(根暗)インテリ」への道も、これから始まるのだから!!



……ちなみに、記念すべき最初のタイプ文字は――「マ」であった。

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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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