機能を実装、無謀に実行


 言葉にできないケースを検討したので、早速E〇CELの修正に取り掛かることにする。

 現在の実装では、0~82という数字は、カタカナを紐付ける為の番号であり、対応関係については深く考えていなかった。

 別に82が「ア」でも、0が「パ」でも構わない――0から82までの数字が、83種類のカタカナと対応付けされていれば、何ら問題は起こらなかった訳だ。

 しかし、今回はそうもいかない。文字の種類によって、出力できるものと、できないものが分かれるのだから。


 文字の種類を大まかに分けると、「ン」以外の大文字(平音、濁音、半濁音)、「ン」、拗音、「ッ」、「ー」の5種類となる。

 まず、促音符(ッ)を0とし、長音符(ー)を1とした。

 その後、2から72に「ン」以外の大文字(ア~ヲ、ガ・ザ・ダ・バ・パ行、ヴ)を割り当てる。これらは常に出力候補に挙がる文字達だ(「アアアアアアア」も起こり得る!)。

 次に73。ここには「ン」を入れる。他の大文字同様、常に出力候補に挙がるが、「ン」が直前にあるかどうかで、74以降の拗音の出力可否が変わってくるので、この位置にした。

 最後に拗音(ァ行、ャ行、ヮ)を74から82まで割り当てる。


 配置が済んだら、分岐の方法を考える。

 一文字目(C列)については、2から73までの乱数を生成させればよい。よって、「=rand()*71+2」と設定する。こうすることで、「0から71までの乱数」に対して2が足されることになり、結果として目的の乱数が手に入る。


 二文字目(D列)は、一文字目の値が73(ン)かどうかで分岐が発生する。この場合、「=IF(C1=73,RAND()*73,RAND()*82)」とする。「ン」の場合は0から73(拗音を除いた文字)、それ以外なら全種類を乱数の範囲にする。


 三文字目から六文字目(E列~H列)においては、同じ条件となる。

 直前の文字(左隣のセル)の値が 0(ッ)か 1(ー)だった場合:大文字だけが許容されるので、2から73までが範囲となる。

 2から72(「ン」を除く大文字)の場合:全ての文字を取り得る。

 73(ン)の場合: 0から73まで。

 74から82(拗音)の場合:「ン」の場合と同じ。0から73まで。

 これらを総集させると、以下の計算式となる。

「=If(D1<=1, rand()*71+2 , if( D1<=72 , rand()*82 , rand()*73 ))」


 七文字目(I列)については、0(ッ)が範囲外となる以外は、三文字目と変わらないので割愛する。



 さて、上記の実装により、およそ二割のパターン数削減に成功した訳だが――それだけでは足りないことも、分かり切った話である。

 いくら五兆削ろうとも、残りの二十幾兆は安泰な訳で、五億では足元にも及ばないことは自明の理だからだ。


 これ以上、分母を削ることは出来ない。

 何とかして分子を増やすしかない。

 マクロの修正をするという手もあるが……

 この時私は、更に簡単な実現方法を思いついていた。

 安直すぎるガキの発想。単純すぎるサルの発想。

 


 このE〇CELをで動かせば、早くなるんじゃね?


 直感を信じて、私は「無限の猿定理.x〇sm」をコピー&ペーストし、二つの分身「無限の猿定理-コピー.x〇sm」「無限の猿定理-コピー(2).x〇sm」を作り上げた。

 三つのファイルを同時に開き、それぞれのマクロを実行する。これにより、通常の三倍の機動力を実現することが可能となる……!!

 

 タスクマネージャを開いてみると、CPU使用率が92%と面白いことになっていた――利用率の折れ線グラフもアルプス山脈みたいになっている。

 

 頼むからもってくれ、PC!!

 この作戦ミッションには、私の明日がかかっているんだ!!


 熱き想いを胸に、私は一つ目の「実行」ボタンをクリックした。

 すると、普段よりもカクカクながら乱数が生成された。

 それだけなら良かったのだが、他の二つのファイルの文字列も連動するように動き出したから、さあ大変。

 ここに来て、私は悟ったのだった。


 rand関数って、他のファイルの操作にも反応しちゃうんだ――

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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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