飽くなき減量(前編)


 私は仕事場の休憩室で、物思いにふけっていた――傍には「知的飲料」の異名を持つドクターペ〇パーが置かれている。


 十二月に入ったことで、この実験が始まってから二ヶ月が経過した。

 更新速度は週次程度に少なくなり、進捗は(着実に進んでいるとは言え)牛歩のようなもの。

 カンニングという手まで使ったというのに、「シェイクスピア」の七文字は余りに遠くにある。「まだチュートリアルか」「いつになったら本編始まるんだ」と思う読者の方々もいるだろう。

 

 嗚呼、次回の報告はどうしたらいいのか――


 炭酸飲料を口に含むと、オリジナリティに溢れた味が全体に広がる。

 溜息をつきながら、持参した大学ノート(無限の猿定理に関する資料)をぼんやりと眺めてみる。

 描画もやらず、細かい仕様も活用した。

 これ以上、何かやれることはあるのか……


 実装方法を再度確認してみる。


 1.A列:0~82までの83個の一連番号

 2.B列:A列に対応したカタカナ文字列

 3.C列~I列:条件に応じて0~82までの乱数を表示させる場所

 4.J列~P列:3.で出現させた乱数を基に、それに対応したカタカナを表示させる場所

 5.Q列:4.で表示した7個のカタカナを結合した、7文字のカタカナ

 6.R列~X列:1行目にそれぞれ「シ」「ェ」「イ」「ク」「ス」「ピ」「ア」とある。これが対象文字列となる。

 7.Y列~AE列:4.で表示させたカタカナと、6.の対象文字を比較し、一致していたら「〇」そうでなければ「×」を出す

 8.AF列:7.の「〇」の数の合計。これが一致文字数になる

 9.AG列:8.の中で最大の数値(10000行の中で最大の一致文字数になる)

10.AH列~AJ列:マクロを用いて自動出力された、10000行ごとの「シェイクスピア」に最も近い文字列(5.)、一致文字数、行数

11.AK列:10.の中で最大の数値(530000行の中で最大の一致文字数になる)

12.AL列~AN列:10.の530000行(1周期)版

13.AQ列~AP列:各周期ごとの実行時間と総合計時間


 パッと見る限り、どこも取り除けないように思える。

 すべての行には明確な利用目的があり、無駄な項目は見受けられない。

 やはり、この状態で実験を続けるしかないのか。


 しかし、やむを得ないことではあるが、膨大なデータ量である。

 3.のように乱数を生成する箇所や、4.のように変換を実施する箇所については、10000行すべてに値が入っている。それが14列あるわけだから、これだけで140000セル――E〇CELのセルがどのような実装方法をしているかは不明だが、その分だけ個別の変数を用意しているとすれば、挙動が遅くなるのも無理はない。

 それに加えて、各セルの値は一定ではない。乱数に従って、動的に変わっていくのだ。つまり、計算式の挙動が毎回行われる……140000回も。これは描画の有無とは全く関係がない話だ。

 

 どうすればいい。

 頭を悩ませていた私はふと、過去に書いたことを思い出した。


――こういう時はまず、やりたいことを紙に書く。


 ああ、計算式のセル数を少なく出来ればいいなあ。


――次に、目的が達成出来ない原因を書いてみる。


 あの時とは違って、明確な理由は思い浮かばないが、ネックとなっている箇所はなんとなく分かる。

 乱数を一文字ずつ変換(4.)し、更に一致文字数の出力の為に、一文字ずつ一致チェック(7.)をかけているという箇所である。

 これだけで10000行が14列、140000セルにもなっている。


――出来ない原因が分かれば、その文章をにした状態がゴールとなる。


 簡単な話だ。

 七文字のカタカナ(乱数)と「シェイクスピア」という文字列を比較できることがゴールである。

 だが、それが達成出来なかったから、こうして実装しているのであって……


 って……あれ?

 これ、そんなに難しい話でもないような?


 私の目はたちまちに冴えた。

 それからは、休憩時間が終わるまで(昼ご飯すら放置して)大学ノートに案を書き込み続けていた。

 ドクターペ〇パーの炭酸は、とっくに抜けきっていた。

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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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