第66話 デジタル宝珠

「ちょっと……聞いてきたのは、百合ちゃんなんだけど?」


僕が『デジタル宝珠』について説明しようとすると、嫁さんは本気でイヤそうな顔をした。


「だって、『デジタル』って言われた時点で、絶対めんどい話になるもん」


「僕とおしゃべりしたがってたクセに……」


「それとこれとは話が別です」


「じゃあ、静かにしててよ。僕は研究を続けたいから」


「え、でも、コレもう飽きたよ」


そう言って、嫁さんは、「☆」と「★」が交互に切り換わる宝珠を差し出した。


「まぁ、そうだろうね。なら、これをどうぞ」


「今度は何?」


僕が新しく渡した宝珠を、疑いながら嫁さんが発動する。


 【●】【●】→【★】


すると、3つのマークが表示された。


「え……何これ……」


「左の2つの丸が触れるから」


嫁さんが一番左の丸マークをタッチすると、それが光った。


 【○】【●】→【★】


「意味わかんない……」


と言いつつ、彼女はポチポチとタッチを繰り返す。これは、2つの丸マークを切り換えることで、星マークが規則性を持って変化するパズルなのだ。そのうち、この組み合わせが、全部で4パターンあることに嫁さんも気づいた。つまり、以下のようにである。


 【●】【●】→【★】

 【○】【●】→【★】

 【●】【○】→【★】

 【○】【○】→【☆】


「なんか、丸が2つとも光ってる時にだけ、星が光るけど、それ以外の時は、星は暗いままだね」


「それが『論理積』。つまり、『AND』回路ね」


「ア、アンド!?」


「じゃ、次はこれ」


「ええぇぇぇぇぇぇぇぇぇ……」


僕が次に渡した宝珠は、次のように4パターンの変化をもって表示された。


 【●】【●】→【★】

 【○】【●】→【☆】

 【●】【○】→【☆】

 【○】【○】→【☆】


「今度は、丸が2つとも光ってない時だけ、星が暗くなる。どちらか片方でも光っている時は、星が光るんだね……」


「うん。それが『論理和』。つまり、『OR』回路ね」


「オ、オア!?ねぇ、今、私、何やらされてる?」


「『単体テスト』」


「たんたいてすとぉ!って、いったい何ですとぉ!?」


「なに、うまい言い方してんの……『単体テスト』は、機能単位で行うテストだよ。不具合が無いか、細かい単位で確認するんだ。これはプログラムを作る基本でね。一つ一つの小さな動作を完璧にしないと、大きなシステムは構築できないんだ」


「うっそ…………」


「じゃ、最後にこれ」


「ええぇぇぇぇぇぇぇぇぇぇぇ…………」


僕が最後に渡した宝珠は、次のように4パターンの変化をもって表示された。


 【●】【●】→【★】

 【○】【●】→【☆】

 【●】【○】→【☆】

 【○】【○】→【★】


「んーー、ん?ふーーーん……」


今度のは少し難しかったらしい。しばらく考え込んでいた嫁さんは、やっと答えを導き出した。


「これは片方の丸が光っている時に星が光るけど、両方の丸が光ってる時は、逆に星が暗くなるんだね。なんか変な感じ」


「うん。それが『排他的論理和』。つまり、『XOR《エクスクルーシブ・オア》』の回路」


「エ、エクス……なんて!?ちょっとカッコいいけど、全然知らない!!」


「または簡単に『エックス・オア』とも言う。高校で習うと思うんだけどな……」


「こんなの習っても秒で忘れるんだよ。普通はね!」


「ちなみに、最初に渡した宝珠は白と黒が反転する、『論理否定』。つまり、『NOT』回路。これで基本的な論理回路が全て完成した」


「いやいや、もう何言ってんの……」


「てことで百合ちゃん、『AND』と『OR』と『NOT』の組み合わせでもイケるんだけど、もっと簡単に『XOR』と『AND』の組み合わせで、こういうモノが作れるんだ。触ってみて」


「えぇ!?」


気を良くした僕が渡した宝珠は、さらに嫁さんにとって不可解な代物だった。


    【●】

  + 【○】

 ――――――

  =【★☆】


「いや、意味わかんないし!」


「ああ、ごめんごめん。さすがにこうなると図形じゃわかりづらいね。光ってる丸を1、光ってない丸を0にしよう」


    【0】

  + 【1】

 ――――――

  =【★☆】


「……え、何これ。足し算?」


「数字を触ると切り換わるよ」


「うーーん?あっ!えぇ?…………お?ほほーーっ」


今度の宝珠は、丸マークの代わりに数字を触ると切り換わる宝珠である。嫁さんはそれを奇妙なパズルだと思って、一心不乱にタッチしはじめた。しばらくすると、これまた4つのパターンがあることに気づく。



    【0】

  + 【0】

 ――――――

  =【★★】



    【0】

  + 【1】

 ――――――

  =【★☆】



    【1】

  + 【0】

 ――――――

  =【★☆】



    【1】

  + 【1】

 ――――――

  =【☆★】



「わかったよ!蓮くん!これ、さっきの2つをくっつけただけだね!右の星が”エックスなんとか”で、左の星が”アンド”ってヤツ!」


「おお、正解だよ」


「あとね!右の星が1で、左の星が2なんだよ!つまりコレって、”0+0=0”から”1+1=2”までの足し算なんだ!」


「ご名答。よくわかったね。そこまで気づけるとは思わなかった」


「へっへーーん!」


「では、星マークも数字に変えてみよう。そうすると、その正体が鮮明になる」


ということで、嫁さんがご機嫌なのを良いことに、僕は全てを数字で表したモノを表示させた。それを4パターン切り換えると以下のようになる。



    【0】

  + 【0】

 ――――――

  =【00】



    【0】

  + 【1】

 ――――――

  =【01】



    【1】

  + 【0】

 ――――――

  =【01】



    【1】

  + 【1】

 ――――――

  =【10】



ところが、これを見せると、嫁さんが目を点にした。


「あれ……なんで左の星も1になるの?2じゃないの?」


「これでいいんだよ。これにて、ついに完成したんだ。世界最小の演算装置『半加算器』が」


「はい!?」


「そして、『半加算器』と『半加算器』を組み合わせれば、下の位からの”繰り上がり”に対応した『全加算器』が出来上がる」


「ま、待って、蓮くん!私、もうお腹いっぱい!これ以上、難しいこと言わないで!」


「この『半加算器』に複数の『全加算器』を組み合わせると……」


嫁さんの悲鳴を聞き流し、僕は満を持して一つの宝珠を取り出した。それを発動すると8桁になった足し算の式が出現した。


   【00000000】

  +【11111111】

 ――――――――――――

  =【11111111】


「これで8ビット『加算器』の完成だ」


「……………………」


「……あれ、百合ちゃん?……リアクションなし……?」


「もう、やだ……」


「え」


「意味わかんない……」


「うん……まぁ、わからない方が遊びになると思うから、適当にイジっててよ。上の2行を触ると変化して、下の1行に足し算の答えが出るんだ」


「ええぇぇぇ?」


嫁さんは、かなり渋々だったが、8ビット『加算器』の宝珠をイジりはじめた。僕はその間、集中して自分の研究を進めることができた。


「蓮くん蓮くん……なんか、少しわかってきたよ」


「ん?」


「これって『2進数』ってヤツでしょ。昔、聞いたことがある。コンピューターは、1と0の組み合わせでデータにしているんだよね。それの足し算をしてるんだ」


「そうそう」


嫁さんは、上の2行を変化させた。


「1と1を足すと、10になるんだよねぇ」


   【00000001】

  +【00000001】

 ――――――――――――

  =【00000010】


「そうだね。1と0しかないから、2にはならずに桁が繰り上がるんだ」


「そこから1ずつ足していくと、増え方がよくわかるね」



   【00000010】

  +【00000001】

 ――――――――――――

  =【00000011】



   【00000011】

  +【00000001】

 ――――――――――――

  =【00000100】



   【00000100】

  +【00000001】

 ――――――――――――

  =【00000101】



「いいね」


「だから、こういうふうに足すと……全部1になる!」


   【11010110】

  +【00101001】

 ――――――――――――

  =【11111111】


「正解!」


と、ここまで嫁さんがイジり倒したところで、不満そうに、ため息をついた。


「はぁ…………でも、これがいったい何になるの?」


「あらゆる計算は、この『加算器』から始まり、その応用で作られている。つまり、これで全ての基礎が出来上がったんだ」


「何の?」


「CPU」


「………………は?……今、なんて?」


「だから、『CPU』」


「シーピーユー!?聞いたことあるよ!パソコンの脳ミソだっけ?」


「うん。その表現は、僕はあまり好きじゃないんだけど、コンピューターの根幹となる『中央演算処理装置』のことだ」


「え、ちょ、ちょっと待って!!蓮くん、今、何を作ってるの!?」


「宝珠を使った、『擬似コンピューター』」


「はぁぁぁぁぁぁぁっっっっ!!!!!!!」


嫁さんが馬車の中で立ち上がり、大絶叫した。

もちろん立てるスペースなどはないため、天井に軽く頭をぶつける。


御者がギョッとして、こちらに振り返った。さらにコリウス部隊長が、異変だと思って窓の外から呼びかけてきた。


「レン様、何かありましたか!?」


「ああ、いえ、なんでもありません。大丈夫です」


「そうですか。ユリカ様の大きな声が聞こえたので、ビックリしました」


「どうもすみません……」


部隊長の馬が離れた後、気を落ち着かせた嫁さんが再び聞いてきた。


「……コンピューターなんて、そんな簡単に作れるの?」


「簡単ではないよ。今、すごく苦労している。でも、宝珠とマナの相性がとてもいいんだ。マナの流れを利用すれば、電子回路で作るよりも遥かに単純な構造で、擬似コンピューターを作ることができそうなんだ」


僕が説明するうちに嫁さんの声が弾んできた。


「じゃ、じゃ、じゃあ、スマホも出来る?」


「スマホはまだ無理だな。最初は初期型のコンピューターを創るところからだよ。でも、開発が進んでいけば、いつかはスマホに近いものも出来ると思う」


「んもう!それを早く言ってよぉーー!」


「え?」


「そんなすごいことしてるんだったら、私、全力で応援するよ!私がうるさいなら、隣でずっと黙ってるから!」


「そうか、ありがとう」


「もう!ほんとになんなの、この人!超楽しみなんですけど!」


「ははは……」


「あ、でも、この前、シャクヤちゃんに一つプレゼントしてたよね?ずるいなぁーー」


「いや、あれは、宝珠をデジタル化する実験で作っただけで、まだコンピューターにはなっていない、ただの試作品なんだ」


「……どういうこと?」


「やっぱり聞く?」


「うん。聞きたい!」


「そうだな……まずは、今見せた『加算器』のように、コンピューターのデータは、1と0で表現し、保存されている。そして、それを僕たちは『デジタル』と呼んでいる。そこはOK?」


「そこは、おけ」


「では、例えばの話、ここに1枚のCDがあったとする。そこに一人の人がやってきて、CDの光っている側、つまり記録面に魔法陣の絵を描いたとしよう。そして、この人は”CDに魔法陣のデータを保存した”と言っている。百合ちゃんは、この人を見て、どう思う?」


「んーー、さすがにおバカさんだな、って思うよ」


「だよね。今の僕は、宝珠にまるごと魔法を保存している、この世界の人たちに対して、同じ思いを抱いているんだ」


「……え、あ、なんとなく、わかったよ!つまり……つまりは…………えーーと……」


「宝珠の中に魔法のデータを『デジタル』形式で保存したんだ」


「そう、それだ!…………あぁ……それだ、って言ったけど、何が起こってるのかは全く理解できないよ……」


「今までは、宝珠の中に魔法を登録する際、魔法陣と発動魔力、そして発動に必要なマナをそのまま保存していた。でも、それは『アナログ』のやり方なんだ。CDに直接、絵を描くのと同じだ。そこで僕は、魔法陣に描かれる図形と古代文字をデジタルデータで表現できるように一覧表を作成したんだ」


僕はここまで説明すると、宝珠から一覧表を表示させた。


そこには、0と1の組み合わせで出来た8桁の文字と、古代文字が対応するように並んでいる。日本語における『あ』を意味する文字から始まり、それが2進数の数値順に当てはめられているのだ。


具体的には、次のようなイメージである。



00000000 …… あ

00000001 …… い

00000010 …… う

00000011 …… え

00000101 …… お

00000110 …… か



「こんなふうに0と1の組み合わせでコードを作り、一つのコードが、一つの古代文字にマッチするように表にする。同じように魔法陣の図形もコード化する。そうすれば、必要なコードを提示するだけで魔方陣を造り上げることが可能になる」


「へぇーー、表と照らし合わせて、実際の古代文字にするんだぁーー」


「そう。これで、全ての魔法はコードによるデジタルデータで保存すればよくなるんだ」


「うーーん……私からすると、なんか面倒くさいことを増やしているだけに思えるんだよね……だいたい、パソコン作ってる人たちって、なんで0と1にこだわるの?」


「いい質問だね。百合ちゃん、例えば、親指以外の4本の指を両手で使って、いくつまで数えられる?」


「え?指が8本だから、1から8まで数えられるよ?」


「そうだね。正確には、指を立てないことで0を表せるから、0から8までの9通りの数字を指で表現できる」


「うん」


「ところが、デジタルの考え方、つまり、2進数で数えると、指8本で、0から255まで数えられるんだ」


「えっ」


「指を立ててるのを1、指を立てないのを0と考える。すると、さっき見せた2進数になるでしょ?」


「あ、なるほど!」


「0と1の組み合わせというのは、桁が増えた分だけ2倍になる。8桁あれば、2の8乗で、256通りの数字を表現できる。16桁あれば、65536通りだ」


「すごっ!そんなに変わっちゃうんだ!」


「だから、昔からコンピューターで使われているんだよ。CDを例にすると、記録面に超細かく刻まれた凹みがあって、凹んだ部分と凹んでいない部分を、それぞれ0と1に見立てているんだ」


「つまり、宝珠にもCDと同じように書き込むことができるんだね?」


「そう。マナが刻まれている箇所を1、刻まれていない箇所を0として、宝珠にコードを書き込んだ。そして、コードから魔法陣を生成して、魔法を発動できるようにした。すると、今まで以上の魔法データを一つの宝珠に書き込めるようになったんだ」


「一つの宝珠にたくさんの魔法が入るってことだ!」


「で、ひと通りの下位魔法を登録し、さらに連携魔法の仕組みまで搭載したのが、シャクヤにプレゼントした『デジタル宝珠』なんだ」


「はぁぁぁぁぁぁ…………」


「宝珠の面白いところは、CPU無しでここまで作れたってことだ。もちろん、その分、無駄な領域も多くなってしまった。そこで、根本的にデジタル化するため、今、CPUを開発中なんだよ」


と、ここまでで『デジタル宝珠』の説明は完了した。

隣では、嫁さんが虚ろな目で僕を見ている。


「………………」


「……あれ、反応ないけど聞いてる?百合ちゃん?」


「聞いてるよ。なんていうか蓮くんて……すごいを通り越して、頭おかしいよね」


「まぁ、これらの仕組みを創り上げてきた情報科学がすごいのであって、僕はそれをマネているだけだからね」


「イヤミったらしいわ……」


「てことで、研究を続けたいんだけど、いいかな?」


「あ、うん。どうぞどうぞ!何か手伝えることがあったら、何でも言ってね!私、全力でサポートするよ!」


「ありがとう」


そうして、僕は宝珠の研究に没頭する時間を持つことができた。

これが、王都への旅路の2日目の午後のことである。


『擬似コンピューター』開発の件を知ってからの嫁さんは、僕の邪魔を全くせず、むしろ献身的に僕をサポートしてくれた。


夜も僕の部屋に忍び込むことはしないで、一人で部屋にいてくれた。「暇つぶしに字の勉強をしておきなよ」と言って、本を貸しておいたので、それでも読んでいるのかもしれない。お陰で、昼夜を問わず、研究に打ち込むことができた。


また、日中の馬車の中では、僕が宝珠への集中を解き、ひと息つきたいと思うと、優しく声を掛けてくれた。


「……っふぅぅ!」


「おつかれさま。蓮くん、甘いもの欲しくない?」


嫁さんは焼き菓子を出してくれた。


「あ、いいね」


「仕事をすると頭を使うから甘いものが欲しくなるって、前に言ってたよね。出発前にコリウスさんにお願いして、用意してもらったんだ」


「マジか。気が利くねぇ」


「水筒にお茶も入れてきたんだよ。ホットのジャスミンティー。蓮くんが作った温める宝珠があるから、温かいよ。揺れるから気をつけて飲んでね」


「最高だ」


「ところで、どれくらい進んだの?」


「『CPU』は出来た」


「えっ!もう出来ちゃったの!?すごい!!」


大喜びする嫁さんだが、僕はまだ笑うことができない。


「いや、大変なのは、ここからなんだよ……」

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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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