第2回―経過報告―


 マクロ機能実装による、試行結果についての報告


<前提>

・全83種のカタカナについて、7文字分を無作為に選択・出力したものを1回あたり10000行出力し、それを53回繰り返す。(これを1周期とする)

・1周期の間に出力されたそれぞれの文字列について、検査対象『シェイクスピア』と比較し、最も一致した文字列が多いものを出力する。条件に合う文字列が複数あった場合は、そのうち、最も先頭に出力されたものを展開する。

・本試行では、上記作業を189周期だけ繰り返すものとする。この試行における合計回数は1億と17万回となる。


<実行結果>

 189周期で出力された最大の一致文字列については以下の通り。

・3文字一致:129件(68.25%)

・4文字一致:59件(31.22%)

・5文字一致:1件(0.53%)

 2文字以下、及び6文字以上の一致についてはなし。


 総合計時間:4135.45秒(1時間8分55秒450)

 1周期あたりの平均:21.88秒

 最短周期:20.32秒

 最長周期:33.58秒


 4文字の一致文字列(1000万行ごとに抜粋・一致した回数を右端に記載)

 01.カ(2229549行目) 6回

 02.ゼメ(14901722行目) 7回

 03.ズヴ(22869412行目) 5回

 04.ワヮシ(32200409行目) 5回

 05.オニセ(47351704行目) 6回

 06.ヤムォ(54461401行目) 10回

 07.(68185503行目) 4回

 08.イフ(79301872行目) 11回

 09.ダーニ(89795897行目) 2回

 10.タ(97948729行目) 3回

 

 5文字の一致文字列

 01.ホ(58199578行目)


<総括>

 前回のレポートより、演算回数を約3300倍に増やして検討したもの。

 1周期あたりの行数が1000行から530000行になっている為、大半であった2文字一致は姿を消し、3文字一致が七割、4文字一致が三割(それに5文字一致が1件)という結果となった。

 それに応じてか、出力される文字列についてもが出てきているように思える。

「ォモイクヲモェ」のように冒頭に小文字がついたり、「シヮィヒスカジ」のように連続して小文字、長音符(-)が付くような、もともと人間が発音出来ないような文言となるケースは「シェイクスピア」というベースに近づくにつれ、少なくなっている。


 完全に無作為なので仕方がないことかもしれないが、4文字一致の出力頻度にかなりムラがあることも分かる。7000万1行目~8000万目までに11回起こったかと思えば、その直後の1000万回では2回しか発生していない。

 合計した結果についても、確率上では73件(約39%)程出力されるべきが、14件ほど少なくなっている。

「ランダムだから仕方ない」という話も勿論あるが、他に原因として考えられるのは「出力文字列の重複」である。今回は一億回ほど演算を繰り返したが、その結果が全て違う文字列になるとは限らない。

 27兆種類ものパターンがあり、現在はそこから無作為に選出を行っているが、取り出した文字列を除外する処理がないため、同じ文字列を引く可能性は当然考えられる。引けば引くほど、対象文字列は多くなり、重複の確率が増えていく。

 そうなってくると、辛うじて27兆回演算をしたところで、「シェイクスピア」を必ず引き当てられる訳ではない(その数倍、数十倍の演算が要る)という、残酷な結論に至ってしまうのだが――それはまた別の機会に考えることとする。


 1周期あたりの平均時間は、20秒強と概ね予想の範囲内であった。ところどころ、処理に時間がかかっている箇所もあるが、多くの演算を繰り返す内に時々遅くなるのはなので、深くは考えない。

 このマクロでは「1時間でおよそ1億回の出力」が出来ると分かったが、それでも27兆回(重複の考慮なし)実行するには、単純計算にして27万時間――11250日(30年と300日)かかる。

 私はその間、仕事をしてもいいし、趣味に勤しんでも一向に構わない訳(少なくとも実の息子に「一生、セル幅を調節してね。私が死んでも」と言わなくていい)だが、若干悠長すぎる。人間は機械と違って死ぬのだから。


<検討方針>

 マクロを見直しし、処理速度を向上させる方法を考える。

 また、読解不能な文字列パターン(不適切な箇所に小文字や長音符が出る)を削ることで、総合計数を減らす試みをしていきたい。


<備考>

 実は「シェイクスピア」と出てきちゃったり……と思っていたのは、密に、密に。

 

 以上

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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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