表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
魔力ゼロですが、魔法はぜんぶコードなので問題ありません 〜前世プログラマーの少女、キーボードで異世界をデバッグする〜  作者: せい | 健康優良不良プログラマ
第1部 ③村を変える小さな発明

この作品ページにはなろうチアーズプログラム参加に伴う広告が設置されています。詳細はこちら

PR
41/211

第41話 分岐の手作り

「——わたしの眼は、瞬間しか読み取れない」


その言葉がわたしの中で輪郭を持ったのは、梯子を下りる途中だった。


足の裏に床板の冷たさが触れた瞬間、頭の中で昨日からずっと回り続けていた問いがふいに一つの形にまとまった。


(——揺らぎは何度も起きる。でも毎回違う形で)


(——眼で読み取って覚えるだけじゃ、追いつかない)


(——一度見た瞬間と、次に見た瞬間。その二つを並べて比べる手段がない)


魔力ゼロのわたしには魔石を発動させる手段がない。読み取れても、その読み取りは一瞬で消えていく。


(——なら、どうやって追いかける?)


梯子の最後の段に足をかけたまま、わたしは一度立ち止まった。階下からはもうエマが鍋を撫でる音がしていた。


◇◇◇


居間ではエマが粥を椀によそっていた。


「おはよう、リナ」


「おはよう、お母さん」


椅子に座って椀を受け取る。湯気が顔に当たって、ようやく頭が朝の温度になじんだ。


エマがちらりとわたしを見た。


「リナ、また考え事?」


「うん」


「村の魔法のこと?」


頷いた。エマには昨日「魔法陣の外で何かが揺れているらしい」とだけ話してあった。それ以上は説明していないし、エマも問わない。


「焦らないでね」


「うん」


それだけ短いやりとりを交わして、エマはまた粥に戻った。


(——魔力なき者でも、何かできる、ってバルドゥスさんが言った)


椀の中で粥の表面がゆっくり波打っている。湯気の立ち上り方が、ふと前世の白いモニターの光に似て見えた。


(——前世で言えば——目で追うだけじゃ足りない時、どうしてた?)


頭の奥で、もう何百回と書いてきた古い設計図が広がった。一瞬で消える値を捉えるための常套手段はいくつもあった。


ログを取る。スナップショットを残す。前後の状態を比較する。差分を取る。


(——『今の値』と『一つ前の値』を、機械に覚えさせる)


椀の中の粥が冷め始めていた。一口だけ口に運んで、わたしはまた天井を見上げた。


(——眼で読み取ったものを、何かに記録させればいい)


頭の中で、昨日まで霧だったものの輪郭が少しだけ濃くなった気がした。


◇◇◇


朝食を終えると椀を片付けて父の工房に向かった。


「お父さん」


「ん」


父アルベルトは作業台で時計の修理をしていた。家庭用の小さな置時計のようだった。極細のドライバーを指の腹で押さえて、軸の油を一滴ずつ補充している。


父はわたしの方を見ない。


わたしは作業台の脇の低い丸椅子に腰を下ろした。背が低いから八歳の身長でも父の手元と視線が同じ高さに来る。


父はわたしを気にせず黙々と作業を続けた。


(——お父さんは、わたしがそこにいることに気付いてる)


(——でも、何も問わない)


父の指が、磨かれた金属の歯車から歯車へと移っていった。一つ目の歯車に軽く触れて、回り具合を確かめる。次に隣の歯車に指をかけて、噛み合わせを確認する。


その動きを見ているうちに、わたしの視線が作業台の脇の小箱に止まった。


そこには、修理に使わなかった古い歯車たちが無造作に放り込まれていた。大きさも歯数もばらばらの、いわばガラクタ。


(——歯車)


(——一つの動力を分けて、別の歯車に伝える)


息が一瞬だけ浅くなった。


(——『AとBが同じか違うか』だけを判定する仕組みを、機械的に作れたら?)


息を止めて、もう一度自分の問いを確かめた。


(——もし2回の詠唱を機械で比較できれば——揺らぎが見える)


頭の中の霧がふいに散った。


——前世で「論理ゲート」と呼んでいたもの。


AND、OR、NOT。コンピュータの最も底の層を支える、たった三種類の小さな部品。比較も差分も、いずれは全部その組み合わせで作れる。


(——『if 文』を物理的に作ればいい)


頭の中で簡単な組み合わせを設計し始めた。


(——入力Aの歯車と入力Bの歯車。二つの動きを受けて、一致したときだけ動く出力)


(——一致しないときに別の方向へ回る出力)


(——組み合わせていけば、『同じか違うか』を機械が答えてくれる)


頬の内側にじわりと熱が立ち上がった。


◇◇◇


「お父さん」


父が手を止めた。極細のドライバーを作業台の上に置いて、わたしの方は見ないまま、少しだけ顔を傾けた。


「歯車の組み合わせで、『もし A が回ったら B も回る』みたいな仕組みって作れる?」


父はしばらく黙ってから、低く答えた。


「……作れる」


「もし A が回ったら、B が止まる、は?」


「逆回しの歯車を挟めば、作れる」


「いくつも組み合わせて、複雑な動きを作るのは?」


父の手が完全に止まった。それから、わずかに顔を上げてわたしを見た。


「お前、何を作るつもりだ」


少し迷ってから、わたしは答えた。


「……まだ分からない。でも、たぶん何か役に立つもの」


父はしばらく黙った。皺の刻まれた指の先で、もう一度ドライバーをつまみ上げる。


「ふん」


それだけ言って、父はまた時計に向き直った。


「木の端材は工房の隅にある。歯車のガラクタは、その小箱だ。使っていい」


「ありがとう、お父さん」


父はそれ以上は聞かなかった。


(——お父さんは、わたしの『家の中だけ』を尊重してくれてる)


肩から首にかけて、温かいものが一度だけ膨らんだ。


◇◇◇


工房の奥の隅にしゃがみ込んだ。


父の作業の邪魔にならないように、薄暗い壁際に木の端材と歯車のガラクタを集めた。大きめの歯車を三つ、小さめの歯車を五つ、それから細い軸になりそうな木の棒を何本か。


(——八歳児の手では、精密な歯車は組めない)


指は前よりは長くなったが、まだ細い。極細のドライバーは持てない。父のような繊細な仕事は到底無理だった。


(——でも、大きめの歯車で、原理だけ確かめられる)


一つ目の試作。


歯車Aの軸を木の端材に穴を開けて差し込み、隣に歯車Bを同じ高さで並べる。歯と歯を噛み合わせる。Aを指で回すと、Bがゆっくり逆方向に回り始めた。


(——Aが回るときだけBも回る、という単純な連動)


(——前世で言うなら、入力がそのまま出力に伝わる最も素朴な形)


二つ目の試作。


歯車AとBの間に、もう一つ小さな歯車を挟んだ。Aを回すと、間の歯車が逆向きに回り、その動きでBが今度はAと同じ向きに回り出した。


(——間を挟むと向きが変わる)


三つ目はもう少し複雑にしてみた。


Aの軸に大きな歯車を、その先に小さな歯車を二つ並列に置く。Aが回ると、小さな歯車の片方は回り、もう片方は——並べる位置をずらしてみる——回らない。


(——片方は『動く』、片方は『止まる』。同じ入力から二つの違う反応が出る)


(——これを二つの入力に拡張すれば——『同じか違うか』を歯車が答えてくれる)


(——前世で言えば、これは AND や NOT の原型だ)


胸の奥が熱くなった。息が浅くなっていた。


ガラクタの中に答えがあった、と頭の中で誰かが囁いた気がした。


◇◇◇


陽が傾き始めた頃、わたしは組み上げた三つの試作を順番に眺めていた。


どれも子供のがらくたみたいな雑な作りだった。歯車は大きすぎて噛み合わせも甘い。軸は木の棒で、指で押さえないとぐらつく。けれど原理は動いている。


(——眼で読み取ったものを、機械が記録する)


(——一度目に読み取った揺らぎと、二度目に読み取った揺らぎ。その差を、機械が代わりに覚えていてくれる)


口の中でもう一度、新しい言葉が形を持った。


(——眼の外に、もう一つ眼を置く)


ゆっくり、もう一度声に出さずに繰り返した。


——観測の補助。


魔法陣そのものに触れる必要はない。魔石を発動させる必要もない。ただ、入力と出力を歯車で受け止めて、二回分の動きを比較するだけ。それなら魔力がなくてもできる。


頭の中で新しい絵が広がり始めていた。


不調になる魔石のそばに、いくつもの歯車が並んでいる。詠唱のたびに入力と出力を受けて、前回との一致/不一致を歯車が答える。前世で何度も書いた、ログとアサーションの混じったような構造。


(——明日、もう少し細かい歯車を試そう)


(——もっと小さく、もっと精密に)


父が遠くで時計の蓋を閉める、かちりという小さな音がした。


(——次に揺らぎを読み取るとき、わたしは一度では見落としていた瞬間を、機械の記録で取り戻せる)


陽が窓から完全に外れて、工房の隅が薄い影に沈んだ。


わたしは三つの試作を端材の小箱にそっとまとめて、明日の朝もう一度開ける場所に置いた。


工房の戸を出ると、村の通りを北の風が抜けていった。バルドゥスの家のある方角だった。次に会う時には、見せられるものが一つだけ手元にある。そう思っただけで、足の運びが昨日とは違って感じられた。


■あとがき・解説


第41話は、リナが「眼で見るだけでは追いつかない」と気付き、その答えとして頭の中に「論理ゲート」という前世の知識を呼び戻す回でした。論理ゲートのもっとも基本となるのは三つ(AND・OR・NOT)ですが、今回はそのうち AND と NOT の二つを解説します(残る OR は次回以降に扱います)。


■この話で出てきた言葉


■「論理ゲート」


コンピュータの中で「もし○○なら××する」という判断を担っている、いちばん小さな部品のことです。日本語では「ろんりゲート」と読みます。


種類はたくさんありますが、基礎中の基礎はたった三つ。AND(両方そろったら通す)、OR(どちらかあれば通す)、NOT(入ってきた値をひっくり返す)。この三つを組み合わせるだけで、足し算も、文字の照合も、画像の処理も、突き詰めればすべて作れてしまう、というのが現代コンピュータの大前提です。


リナがガラクタの歯車を見て息を呑んだのは、まさにこの「最も底の層」を、電気なしで歯車だけで再現できる、と直感したからでした。


■「AND と NOT」


AND は「両方が成立したときだけ動く」仕組み。たとえば「鍵が差し込まれていて、かつ、回されていたら、扉が開く」というのがそれです。片方だけではダメで、二つの条件がそろわないと動かない。


NOT はもっとシンプルで「入力をそのまま逆にする」だけ。スイッチを入れたら消える、消したら点く、という臍曲がりな仕組みです。


歯車の世界に置き換えると、AND は「二つの歯車が同時に噛み合ったときだけ次の歯車が回る」配置として作れますし、NOT は「逆回しの歯車を一つ挟む」だけで作れます。リナがしゃがみ込んで試した三つの試作は、まさにこの原理を確かめる遊びでした。


■「眼の補助観測装置」


これは小説オリジナルの言い方ですが、現代の言葉なら「測定器」や「ロガー」と呼ばれるものに近い考え方です。


人間の眼は瞬間の出来事を覚えるのが苦手です。だから科学の現場では、機械にその役を肩代わりさせます。温度計、ストップウォッチ、波形を記録する装置。どれも「人間が見落とす一瞬を、機械が代わりに覚える」ための道具です。


リナがガラクタの歯車に見出したのは「魔法を直す道具」ではなく「魔法の揺らぎを、自分の眼の代わりに見届けてくれる道具」でした。眼の外に、もう一つ眼を置く。この発想の転換が、ここから先の章で大きな意味を持つ起点でした。


父アルベルトが「お前、何を作るつもりだ」と問いながら、それでも「使っていい」と言ってくれる場面。あの距離感は、寡黙な職人の父にとっての精一杯の応援だと思って書きました。


次の話もお楽しみに。


評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

↑ページトップへ