ツイ廃「無限ループって怖くね?」
昨日間違えて2話更新してました。
幻惑石によるネットワークの構築に見通しがついたので、場所を河原から研究所に戻して一旦休憩を取る。メイドのロレッタが、ハイラムの屋敷で調理場を借りてお茶の支度をしてくれたので、各自それを楽しみながら……まあ、実体のない俺とジーラは見ているだけなんだが。
「さて、ヤスキチ君。今後の動きは?」
「幻惑石については、もっと効率的な形状がないか検証してほしい」
前髪の奥で目をきらめかせながら問いかけてくるミューに応える。
「具体的には距離の延長と、角度を広くだな。360度から情報を送受信できると設置しやすくなるし」
たぶんできると思うんだよな。情報魔法には指向性があるみたいだが、幻惑石はうまいこと対象を探してるみたいだし。
「あとはナイアット全土のミニモデルを作って、リレーする数的に問題ないかの検証も必要だな。大変だと思うけど、任せていいかな?」
「いやあ、課題がたくさんあってやりがいがあるよ」
ミューは前髪の奥でやる気を見せる。
「ところで私に幻惑石を任せるとなると、ヤスキチ君は何をするんだい?」
「幻惑石によるネットワークを構築すれば、ナイアット全土で心の声が通じるようになるが、それだけじゃ足りない」
「それだけでも随分革新的なことでありますが」
そうかもしれないが、俺の欲しいものは違う。
「俺がやりたいのはTwitterなんだ。というわけで、インターネットに根ざすサービス、Twitterを俺は作る! 絶対にだ!」
おお、Twitterよ、俺の生きがいよ。この世界でもついにタイムラインを眺めて大喜利ツイートをしクソリプ合戦を繰り広げる日々がやってくるのだ!
「そういえばそれが目的でありましたね。しかし、どうやって? ツイッターというものの概要は教えていただきましたが……どうやって実現するのでしょうか?」
「やり方は見当がついてるんだ」
今までその可能性はさんざん見てきた。
「トワ、あの割れる林檎の映像を出してくれないか?」
「あれですか? はい」
林檎の映像が宙に投影される。
「これってさ。触ると割れるんだよな?」
「であります」
「でも、何もしなければ何も起きない」
つまり、その条件を並べればこうだ。
「もし、指が触れたら、割れるアニメーションを再生する。そうでなければ、なにもしない」
俺は情報魔法で林檎を出して、指で触れる。パカリと真っ二つに割れる林檎。
「つまり、情報魔法はプログラミングができるんだよ!」
「ぷろぐらみんぐ……?」
「あーと、機械にさせる仕事を順番に書くこと……つまり、情報魔法ですることの条件や動作を順番に設定することだ」
どう考えてもプログラミングとしか思えない。
「情報魔法はプログラミングができる。だったらそれでTwitterも作れるはずだ」
ソフトウェアは結局プログラミングの積み重ねだからな。
「けど、今のナイアットに情報魔法を活用した便利なサービスはない。おそらくそれは、人間の情報魔法の記憶保存に限界があるからだ」
情報魔法でプログラムを動かすには、その命令文を全て記憶している必要がある。
「ミューが大学で見せてくれた自動暗算も、表計算も、全部命令文は覚えているんだろう?」
「ん、まあ大体は。実際に使うときはメモを見て情報魔法で記憶し直しているよ」
「あれで限界近いっていうなら、Twitterを作るには記憶容量が足りなすぎる。Twitterはもっとたくさんのプログラムの集合体なんだ」
これがこの世界で情報魔法が発展せず軽く見られてきた原因だ。複雑な処理をするためのプログラムの記憶領域がないことが。
「だが、これからは違う」
記憶領域なら、ある。
「鍵になるのは、ここでもジーラだ」
「お? わしか?」
「ああ、お前だよ」
無限の魔力を持ち、眠らない魔獣、ダイモクジラのジーラ。
「ジーラはその魔力で人間とは比べ物にならない情報保存ができる。そして保存した記憶は、眠らないからずっと維持していることができる」
つまり俺の計画はこうだ。
「ジーラにTwitterのプログラムを保存して、サーバーとして働いてもらう。そうすればTwitterが実現できる!」
──はずだ、うん。
「ヤスキチのために働くのは構わぬぞ。そのツイッターというやつは楽しみにしておったのじゃ。それを作ると、無限の情報量が得られるんじゃろ?」
ジーラは自信満々の顔をして──首を傾げる。
「で、サーバーとはなんなのじゃ?」
「一般人……というか、人間には膨大なプログラムを覚えることはできない。でも、命令を出すことならできる。TwitterのUIを表示する、単語検索をする、フォロー・リムーブをする……そういった処理を人間の代わりにやってやるのがサーバーだ」
要するに完全にクラウド型のサービスを作るわけだ。これなら簡単な情報魔法しか使えない人でも、問題なく利用できるはず。
「ジーラの情報保存量なら問題ないと思う……んだが」
「なんじゃ? 何か心配事かの?」
「懸念点はあるんだよな……とりあえず、少し検証しようか」
ジーラと向き合って座る。空気椅子だが。
「まずはミューがやってた表計算からいくか」
適当な数字を念じて宙に並べていく。
「これを記憶してジーラの方で表示してくれるか?」
「ん、やったぞ」
「それじゃあまずは合計値から……えっと、ちなみにジーラ、足し算って分かるか?」
「足し算?」
あ、そこからか……と思ったものの、一度教えるだけで四則演算はすぐに完璧になった。情報魔法ってすごいな。いや、ジーラの地頭がいいのか?
「それじゃこの表に並んでる数字をすべて足したものを、一番下に表示してくれ」
「簡単じゃぞ」
パッと合計値が表示される。うん、こっちの検算の結果と同じだな。
「じゃあ次は、数字が小さい方から、上から順に並び変えてもらおう」
「えーっと……これが一番小さいかの? じゃから先頭にして……えっと、次が……あ、こっちの方が小さかったの」
表がぐにゃぐにゃと動いて数字が上下する。……さすがに自動で最適な動きはできないか。
「悪い悪い、やり方を教えるよ。こういうところでこそプログラミングの出番だ」
「おや、ヤスキチ君、分かるのかい?」
「パズルゲームでやったことがあるんだ」
よく分からなくて攻略をぐぐっちゃったけどな。
「バブルソートっていうアルゴリズムでいこう。隣り合った数字同士を比較して、小さければ何もせず次の比較に移り、大きければ順序を入れ替えて次の比較に移る。これを入れ替えが発生しなくなるまで繰り返すんだ。つまり……」
えーっと、プログラミング言語はないから……口語で命令すると……。
「これから行う処理を次の条件を満たす間繰り返す。変数iが表の要素数から1引いた数よりも小さい間。変数iは0から始まり繰り返しごとに1増加する……──」
「な、何の話でありますか?」
隣で聞いていたトワが目を白黒させる。
「うーん、for文を口頭で表現すると難しいか……?」
「いや、理解できる。続けるのじゃ、ヤスキチ」
「そうか? じゃあ──」
二重for文とかいう人間にはこんがらがるような命令文を一通り伝える。
「──で終了なんだが、どうだ?」
「うむ、保存したのじゃ。ほれ」
宙に浮かぶ数列が次の瞬間、綺麗に小さい順にソートされる。
「おお~、すごいのであります」
「じゃろ?」
トワが拍手し、ジーラが胸を張る。
「──じゃが、ヤスキチは満足しておらんようじゃの?」
「というか、心配をしているんだよ」
手放しには喜べない。
「理由は2つある。1つはジーラの処理速度の問題だ。これから全ナイアットの人間の要求にサーバーとして応答していくことになるんだが、それに耐えられるかどうか」
サーバーのスペック問題だ。プログラミングが本職ではないサポセンのお兄さんに、超効率的なコードなんて書ける気はしない。保存容量は無限らしいからデータ量には問題ないだろうけど、処理速度の上限によってはTwitterが実現できるかどうか怪しい。重くて使い物にならないとかなったら悲しい。
「もう1つは……コードがバグってた時、ジーラがどうにかなってしまわないかどうか」
どんなプログラマーだってバグは出す。いわんや、サポセンお兄さんにおいてをや。
「無限ループとかしちゃったら、ジーラが停止するんじゃないかと思って……ちょっと怖い」
式を実行した途端、ビープ音とか鳴らしてジーラが固まったら怖くね?
「式を間違えなければよいのじゃろ?」
「間違えないように気をつけても、Twitterぐらいの複雑なプログラムになるとバグは絶対出るんだよ」
実のところミューの表計算を見せてもらった後に、『俺を消す方法』及び『ダイモクジラを退治する方法』としてプログラムのバグを利用する方法を考えていた。だが今となってはジーラは全ての計画の要だ。バグで動かなくなりました、なんてなったら……。
「ああ、大丈夫だよヤスキチ君」
俺が逡巡していると、ミューがあっさりと言う。
「情報魔法で行ってる処理は、頭の中で行われているわけじゃないのさ。だから処理が暴走しているときは、それを意識して止めることができる。情報魔法で記憶できないほどの巨大な情報になったら、そもそも魔力が足りなくて解除されるしね。この私で実証済みさ。なんならやってみせてもいいよ」
「そ、そうなのか」
自分から被験体として名乗り出るとか、研究者こわ。
「……いや、そういうことなら自分でやってみるよ」
簡単なコードなら記憶容量もわずかだ。とりあえず無限に変数xに1を加算するコードを書いて……実行。
「ん……お?」
──無限だ。
「や、ヤス殿? なんか変な顔をしていますが大丈夫でありますか?」
「っ、ああ、いや、大丈夫だよ。無限を感じていただけだ」
なるほど、確かに情報魔法の処理は脳で行われていない。何か別の領域で実行されていることが感じ取れる。そこに無限に増加していく数値があるのが分かる。だが、それだけだ。停止も……できるな。まあ停止したところでなんかすでに変数xは無限なんだが……無限だわ……無限……。
いかん中身を把握しようとすると気が遠くなる。
「よし、たぶんバグが起きても大事にはならないな。なら次は処理速度の問題だ」
愚直に素数を求める式をジーラに伝える。ある数について2から順に1ずつ足した数で割り算して剰余が0になるかどうかを確認するだけ。処理能力を計る基準はよく分からないけど、これで試しにやってみよう。
「じゃあ式を実行してくれ。適当なところで止めてどれぐらいの桁数の素数が見つかったか確認してみよう。ちなみに俺のいた世界じゃ分散コンピューティングを使って確か1カ月ぐらいかけて2,486万桁ぐらいの素数を見つけたのが今のところの最大で──」
「それ以上の桁のものもあるみたいじゃの」
「まあ理論上はそう……え?」
うん?
「……もうそこまで計算したのか?」
「というか、無限にあるんじゃろ?」
「え。2,486万桁以上の素数の答え出てる?」
「無限に出ておるぞ?」
え、一瞬で? どういうこと? ジーラの頭脳のクロック数どうなってんの?
……いや、情報魔法って脳で処理してるんじゃないんだっけ。じゃあ情報魔法自体が速いってこと? 俺も実行してみるか……うわっ、無限だわ~……答えが無限……むしろその答えを認識することが難しいよ。
「……素因数分解とかも一瞬で出来そうだな」
この世界、RSA暗号が無力なんじゃないか? 怖い。情報魔法怖い。
「ヤス殿、大丈夫でありますか?」
「ああ……もう魔法だから何でもありだよな、って思うようにしたよ」
なぜか答えが正しい数字を妄想している、と思えば理解できなくもない。情報魔法は自然科学に反していない、うん。
「ふたりとも、さっきの式を処理して魔力が足りるのかい?」
「ん? ってことは、ミューさんは実行できない?」
「ああ、実行しようとするとすぐに解除されてしまうよ。いやあ……ジーラ君は魔獣だから理解できるけど、ヤスキチ君もとは……桁違いだね」
「フフン、当然じゃ。ヤスキチはすごいのじゃぞ!」
ジーラと接触して以降、俺は完全記憶能力でも目覚めたかのようにこの世界に来るまでの記憶を思い出すことができる。が、別に賢くはなっていない。いつでも読んだり見たりできるアーカイブを持っているだけという感覚だ。つまり、それが情報魔法による記憶の保存なのだろうか? 27年分の超鮮明な映像記録を保持しているなら、無限の数列ぐらい余裕……なのかな? 自分じゃよく分からん。
ただ、幻惑石に魔力を通しっぱなしにする……とかは自分にはできそうにないし、ジーラと俺の間には歴然とした差はありそうだ。どう計測したらいいのか分からないが。
「とにかく、問題は解決だ」
この世界にTwitterを作るための材料は、確かにあったのだ。
「ミューさんは幻惑石の研究を。そして俺はTwitterのプログラムを作る。情報魔法の処理能力と、ジーラの魔力による無限の保存領域があれば、問題はないはずだ」
積み重ねていけば、趣味程度の素人プログラマーでもきっとできる。
なんたって睡眠時間が必要ないからな。はっはっは。
「さあ、Twitterを作ろうか!」
明日も更新します。




