さて、昨日はこんな記事を書いた。
こんなことをして喜んでいたいが、やはりどうしても元号が4文字だった時代がある以上、その可能性も網羅しなければ完璧な国家機密は作れない。というかまず、私一人が今この瞬間に元号を制定せよと言われたら絶対3文字の元号を考え、世間の予想や偽の流出情報を見てニヤニヤするだろう。そんなひねくれ者が内閣府の担当にいるかどうかは知らないが、まあとにかく元号法に文字数についてや同じ漢字の使用について記述されていない以上、国家機密というにはどうも不十分な気がする。
そこで今回は0文字から4文字の可能性を網羅した国家機密お手軽流出キットの作成を考える。5文字以上の可能性は流石に国民からの評判が悪いし、達筆な安倍総理がのびのびと色紙に書いてお披露目するには少々文字数が多いだろうからないものとする。まあそういうことでぱぱっと書いてしまおう。
よぅしできたぞ。特定機密保護法違反だ。
とここまではいいが、私は利口だ。2136個の順列の幅を気軽に増やすとどうなるか知っている。爆発だよ、爆発。成果物がどんだけの容量になるのか全く見当がつかない。ということで一応どのくらいになるか計算してみることにした。
k_sizeは漢字のバイト数、n_sizeは改行のバイト数である。常用漢字はUTF-8内の3バイトで済むの領域に収まっているような気がしたのでそういうことにしておいた。改行もわざわざ変数を設定してあるのは\r\nか\nかちょっと自信を持てなかったからなのだが、どうも\nだけだったらしい。これを実行するとこうなる。
0 : 1.00 B 1 : 8.34KB 2 : 30.47MB 3 : 90.79GB 4 : 246.21TB
要するに常用漢字2136個の4文字の順列を出力させると250TB近くなるらしい。これはだめだ。私の手元には大容量記憶装置をかき集めたところでせいぜい10TB程度しか工面することができない。国家機密を流出させるのはなかなか容易ではないな。
とは言えここで白旗を上げるのは悔しいので、一応3文字までのやや強化版を作り妥協することにした。
というわけで私はやや強化版国家機密で我慢することにしたが、もし自宅に250TB近い記憶容量があったり、クッソでかいオンラインストレージを借りてたりする兄貴たちは気軽に挑戦してみてほしい。兵庫県警が遊びに来てくれるかもしれないぞ。まあそもそも並列処理でもさせない限り4/1の発表に間に合わないかもしれないがな。
ちなみに私の一押しは「珍珍感謝」だよ。
追記 :
4/1に滞りなく新元号が発表されていたので、確認したところ、ちゃんと流出できていたので満足した。
$ time cat kokkakimitsu.txt | grep "令和" 令和 亜令和 哀令和 挨令和 ~~~(中略)~~~ 枠令和 湾令和 腕令和 real 13m12.556s user 0m48.202s sys 1m17.170s