反撃準備の狼煙


 相も変わらず「無限の猿定理」ファイルは、1000行に渡って、乱雑オリジナルなカタカナ言語を吐き出していた。

 プログラムには体調も機微もない。命令通りにしか動かないのだし、命令そのものが命なのだから、当たり前である。人間性を求めるのは酷というものだろう。


 今回の修正内容は、プログラムに「惜しい」と判定させる機能の追加だ。

 別に、ゴールが近くなるわけではない。私の精神衛生上、「惜しい」と思わなければやっていられない為に、実装と相成っただけだ。

 十五分ほど考えて、実現に必要な処理を以下の三つにまとめた。

・出力された文字列が「シェイクスピア」と比べて合致しているかを確認

・合致している文字数が最大のものが、最も「惜しい」文字列になるので、その数を表示する

・その数が出ている行のセルを、赤色で塗り潰しておく(その文字列を確認しやすくするため。1000行もあると、目視で数を見るのは結構苦しい)


 これらの実現方法についても、私は知らない。

 知っているとしたら、「知らないこと」を知る為の方法――ググルの術だけだ。


 それから三十分が経ち、知識の神との対話を終えた私は、早速、鉄仮面プログラムに表情を付ける作業に取り掛かった。


 まず、一番目の処理については、「if」関数と「countif」関数を用いることで、擬似的な再現が可能となった。

「if」関数とは、文字通り「条件」を指定し、その条件に合うか合わないかによって、処理を変更できるという関数である。

 まず、R1からX1までの7つのセルにそれぞれ「シ」「ェ」「イ」「ク」「ス」「ピ」「ア」と一文字ずつ値を設定する。

 その後、Y1のセルに「=IF(J1=R$1,"〇","×")」と入力する。簡単に言えば、無作為に出したカタカナの一文字目と、「シ」を比較し、同じだったら「〇」を、違っていたら「×」を出すようにした。この作業を、残りの6文字(Z1からAE1)についても行う。

 その次は「countif」関数。これは「条件(if)」を指定し、その条件に合ったセルの数を数える(count)。ここで数えるのはもちろん「〇」の数である。

 AF1のセルに計算式「=COUNTIF(Y1:AE1,"〇")」と入れる――これで、一行分の無作為カタカナについて、「シェイクスピア」と比較が出来るようになった。

 ちょうど、一行目の文字列が『ムペヒャグプ』となった。AF1には「1」という数値が表示されている。実装は成功だ。これが「7」になる時が、いつかやってくるのだろうか……

 Y1からAF1までの8セルを、身外身オートフィルの術で1000行分まで複製すると、「0」が大抵ではあるが、「1」や「2」も見受けられた。


 次に二番目。これは簡単であった。

「max」という実に分かりやすい関数があったのだ。

 この関数は、範囲指定した中で最も大きな値を返す――つまり、AF列を指定してやれば、文字の合致数について、最大値を返すようになる。

 AG1に「=MAX(AF:AF)」と入力すると、「2」という数値が出てきた。これは1000行分については、最大で2文字合致している文字列が見つかったということを意味する。例えば『ブネトオバ』のようなものが。


 そして最後に、そのセルを赤く塗り潰す。

 いくら「2」が出たことが分かっているとはいえ、1000行もの数値を目視で見るのは苦しい。ただでさえ、1つのセルの大きさは小さいのだ。白背景では見えにくいことこの上ない。

 この処理には関数ではなく、セルの「書式設定」と呼ばれるものを用いる。

 メニューから「書式」―「条件付き書式」を選択する。この時、AF列を範囲選択したままにするのがポイントだ。範囲を指定しておくと、その範囲内のセルにのみ書式が反映される。

(列や行をまとめて範囲選択したい場合は、その列名や行名の部分をクリックすれば良い。今回の場合「AF」の部分をクリックすると、指定が可能となる)

 すると、条件指定画面が出るので、「セルの値」が「次の値に等しい」と指定する。その後、比較対象となるセルに「AG1」を指定する。

 最後に「書式」を設定する。「書式」ボタンを押し、「パターン」シートを選択。セルの網掛けに「赤色」を指定すれば完了だ。


 以上の作業により、セル幅を調整する度に、において、最も「シェイクスピア」に近い文字列が出た行が、赤く塗り潰されることになる。


――これで、致命的な退屈を少しは凌げるようになるはずだ。

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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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