第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』は出来た」
「えっ!もう出来ちゃったの!?すごい!!」
大喜びする嫁さんだが、僕はまだ笑うことができない。
「いや、大変なのは、ここからなんだよ……」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます