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

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

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

エラーが発生しました。

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

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

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

PR
52/211

第52話 動く数表

翌朝、わたしは早起きをして工房に行った。


机の上の機械を布で拭いて、歯車の軸の位置をもう一度確かめた。昨日動かしたぶんだけ、軸がほんのわずかに沈んでいる。針金で測りながら、一段ずつ高さを戻した。


(——機械は、置いておくと、ずれていく)


(——だから、毎朝、整える)


前世のソフトウェアにはなかった作業だった。けれどここでは、整えることそのものが、機械と生きることの一部だった。


父が工房に入ってきた。


「リナ」


「うん」


「今日、グスタフが村の連中を連れてくる」


「えっ」


「『動く機械』を見たい、と言うんで、断れんかった」


胸の奥がきゅっと縮んだ。家族の外へは、もう半分こぼれている。けれど、それでも、まだ「機械」として見せる範囲なら大丈夫——そう自分に言い聞かせた。


「お父さん」


「ん」


「機械だけ、見せる。眼の話は、しない」


「ふん。それでいい」


父はそれだけ言って、机のもう一方の端で別の作業を始めた。


◇◇◇


頭の中で、もう一つの問いが回り始めていた。


(——同じ機械で、もっと違うことはできないだろうか)


四桁の加算機。一回ハンドルを回すと、入力 A と B の和が出る。ただそれだけ。


(——でも、もし入力 A をそのまま、入力 B にもう一度足したら?)


頭の中で操作を辿った。

A に『一』を入れて、Bに『一』を入れる。和は『十』。

次に、Aを『十』に置き換えて、Bを『一』のままにする。和は『十一』。

さらに、Aを『十一』に、Bを『一』のまま。和は『一〇〇』。


(——一、二、三、四——)


(——同じ機械を、繰り返し回すだけで、数列が出る)


前世の言葉が頭の中で立ち上がった。


——『階差機関』。


イギリスの数学者が構想して、生涯をかけて作ろうとした計算機械。表を作るための装置。あらかじめ計算しておいた数列を、機械が自動で吐き出してくれる。


机の上の加算機は、それと同じことができる。


(——機械の出力を、機械の入力に戻せばいい)


頭の中で配線が組み上がっていく。出力の歯車から、また入力Aの歯車へ動力を戻す経路を作る。入力Bは固定値(例えば『一』)。ハンドルを回すたびに、Aの値に Bが加算されて、新しいAになる。


——『フィードバックループ』。


前世の制御工学の基本だった。出力を入力に戻して、安定した動作を作る。


「お父さん」


「ん」


「この機械の出力を、入力にもう一度繋ぐ。それで、ハンドルを回すたびに、数が増えていく」


父は手を止めて、機械を見た。


「足し算を繰り返すのか」


「うん」


「数を、勝手に並べてくれるな」


「うん」


父はしばらく考えてから、机の脇の引き出しから細い軸を一本出した。


「やってみい」


◇◇◇


午前中いっぱい使って、出力から入力への戻し配線を組んだ。


四桁の加算機の出力歯車から、細い軸を一本伸ばして、入力Aの歯車へ繋ぐ。入力Bは固定の歯車に置き換えて、『一』に相当する動きが毎回入るようにする。


組み終えて、ハンドルを回した。


一回目——出力『〇〇〇一』。

二回目——出力『〇〇一〇』。

三回目——出力『〇〇一一』。

四回目——出力『〇一〇〇』。

五回目——出力『〇一〇一』。


(——前世なら 1 から 5)


(——機械が、勝手に、数を並べてる)


胸の奥で熱がじわじわと広がった。


「お父さん。見て」


父が手元の作業を止めて、機械の出力を覗き込んだ。


「……増えとる」


「うん」


「一回ずつ、増えとる」


父が、何度かハンドルを回した。出力の桁が、ゆっくりと『〇一一一』『一〇〇〇』『一〇〇一』と変わっていった。


「これは——表だ」


父が呟いた。


(——あ)


驚いた。


前世なら『数列』と呼ぶものを、父は『表』と言った。けれど、本質は同じだった。順番に並んだ数。あらかじめ計算しておけば、後で参照するだけで済むもの。


「お父さん、表の使い方、知ってる?」


「ふん。商人が使う」


父はそう答えた。


「商人は、値段の表を持ち歩く。何斤いくら、と書いた紙だ。それを見れば、いちいち計算しなくていい」


(——ルックアップテーブル)


頭の中でもう一つ前世の言葉が立ち上がった。


(——機械が表を作り、人が表を参照する)


(——計算の半分は、それで済む)


胸の奥で、また一つ、見えた気がした。


◇◇◇


昼を過ぎて、グスタフ親方が三人の村人を連れてやってきた。


工房の戸口に立ったのは三人。麦倉の管理人カイル爺さんと、家畜の世話をするマリスのおばさん。それから祭司エルナだった。


「邪魔するぞ」


グスタフが先頭で入ってきた。エルナはわたしと父に短く頭を下げて、静かに机の前に立った。


「リナ。これが『動く機械』」


エルナの声は穏やかだった。


「うん。お父さんと作った」


『お父さんと作った』、それは正直な事実だった。半加算器までは確かにわたしが設計した。けれど全加算器を四桁に並べる作業の半分以上は、父の手と、グスタフの軸で出来ている。


エルナが小さく頷いた。


「やってみせて」


ハンドルに手を添えた。エマが台所から覗いていた。ノラがエマの足元にしがみついていた。


ハンドルを回した。


歯車が動く。一桁目から四桁目までが、波のように動く。出力の桁が、確定する。


「……動いとる」


カイル爺さんが顔を寄せた。


「これは、足し算しとる」


「足し算と、表作り」


父が短く説明した。「表を、機械が、勝手に作る」


カイル爺さんが、わたしを見て、それから父を見た。


「アルベルト。これは、商人ギルドが欲しがるやつだ」


「だろうな」


父は短く頷いただけだった。


エルナが、機械の出力を見つめたまま、わたしに小さく囁いた。


「リナ。これは、機械でいいのね」


「うん。機械です」


「分かりました」


エルナはそれ以上、何も問わなかった。エルナだけは、わたしの『眼』の話が背後にあることを、たぶん察している。けれど、その線を彼女が外向きには引かないことは、ここまでの付き合いで分かっていた。


◇◇◇


夕方、村人とグスタフが帰った後、わたしは一人で工房に残った。


機械の前に座って、ハンドルを一度だけ回した。出力の桁が『一〇一〇』に変わった。


(——数を、機械が並べてくれる)


(——でも、機械は、覚えてくれない)


ハンドルから手を離せば、機械は止まる。止まったところから、また始めるしかない。途中の数を保持しておく仕組みがない。


(——だから、毎回、最初からハンドルを回す)


(——同じ計算を、何回もやり直す)


前世の言葉が、また頭の中で立ち上がった。


——『メモリ』。


数を、機械が自分で覚えておく仕組み。


そして、エマの織物部屋。二進数の縦糸の上下と、結び目の紐。あれが頭の中で甦った。


(——紐に、数を刻んでおけば、機械が読み取れる)


(——一度計算した数を、紐に書いて、後でまた使える)


指先が、また一つ軽くなった。


(——次は、数を覚えてくれる機械が要る)


声に出さずに呟いた。


工房の窓の外で、夕陽が机の上の歯車に長い影を落としていた。


机の上で四桁の加算機が、ハンドルから手を離されたまま、静かに止まっていた。組み上がってから、もう一回も狂っていない。明日また組み直しはいるけれど、それでも確かに『動く機械』として、ここに座っていた。


(——お父さんが、面白いと言った)


(——エルナが、機械でいいのね、と言ってくれた)


(——お父さんが、表だ、と言った)


頭の中で配線が、いくつも静かに重なっていった。


(——わたしの場所は、ここにある)


(——少しずつ、ここを広げていく)


夕陽を含んだ麦の匂いが、工房の中まで流れ込んでいた。


■あとがき・解説


この章の後半、「機械式計算機」の区切りの締めくくりとなる第52話でした。四桁加算機の出力を入力に戻して、ハンドルを回すたびに数が並んでいく「動く数表」が机の上で動き、村の三人がそれを見にやってきます。父アルベルトの「これは——表だ」という呟き、グスタフの「商人ギルドが欲しがるやつだ」という値踏み、エルナの「機械でいいのね」という静かな確認。今回はリナの中で動いていた発想と、ここに置かれた一つの区切りについて、ゆるく書いていきます。


■この話で出てきた言葉


■「フィードバックループ」——出力を、入力に戻す


リナがこの話でやったのは、加算機の出力を入力にもう一度繋ぐ、というシンプルな配線変更でした。前世の言葉なら「フィードバックループ」。出力を入力に戻して、一回の動作の結果を次の動作の前提にする仕組みです。


ハンドルを一回回すと、A に固定値の「一」が加算されて、新しい A になる。もう一回回すと、その新しい A にまた「一」が足される。たったそれだけのことで、機械が勝手に 1、2、3、4、5……と数を並べていく。前世の制御工学では基礎中の基礎の発想ですが、これを歯車の連結だけで実現できるところに、機械式計算機の可能性の入口がありました。


■「階差機関」——表を作るための機械


リナの頭の中で立ち上がった「階差機関」という言葉。これは前世の歴史に実在した機械の名前で、十九世紀のイギリスの数学者チャールズ・バベッジが構想した計算機械です。


バベッジが作ろうとしたのは、まさに「数の表を自動で作る機械」でした。当時の天文学や航海では、対数や三角関数の表が必須で、けれど人間が手で計算すると必ず間違いが入る。だから機械にやらせよう——というのがバベッジの動機でした。彼は生涯をかけて取り組みましたが、当時の工作精度では完成しきれませんでした。


リナの四桁加算機がやっていることは、その階差機関の最も素朴な姿に近い。歯車一つの精度で詰まったバベッジの構想を、八歳の女の子が「同じ機械を繰り返し回せばいい」という発想で、村の工房の机の上に再現してしまった瞬間でした。


■「ルックアップテーブル」——計算より、参照のほうが速い


父アルベルトが「これは——表だ」と呟き、商人の値段表の話をした場面。リナの頭の中で立ち上がった前世の言葉が「ルックアップテーブル」でした。


プログラマーの世界で、繰り返し使う計算結果をあらかじめ表にしておいて、必要なときに「計算する」のではなく「表を見る」ことで処理を高速化する手法を、こう呼びます。たとえば三角関数の値を毎回計算するより、あらかじめ表にしておいて参照したほうが何十倍も速い、ということがよくあります。


「機械が表を作り、人が表を参照する」——この役割分担の発想は、前世のコンピュータの中でも、現代のソフトウェアの中でも、当たり前のように使われています。父が商人の話で説明してくれた「何斤いくらと書いた紙」というたとえは、リナにとって、自分の機械の用途を一気に広げる言葉でもありました。


■章の締めくくりに寄せて


ベシリアの揺らぎの観察から始まり、プレヴェルティスで村の朝の竈に火を取り戻し、半加算器、全加算器、リップルキャリー加算器、そしてフィードバックループで動く数表まで。この章は、リナの「眼」と「手」が、観測の道具から計算の道具へと組み変わっていく道のりでした。


魔力を持たないと言われた小さなリナが、机の上で「数が勝手に並んでいく機械」を動かし、村の三人が戸口からそれを覗き込む夕方。父が短い言葉で「面白いものを作っている」と妻に話していたこと、エルナが「機械でいいのね」と引き継いでくれたこと、グスタフが「表になる」と値踏みしてくれたこと。胸の奥でいくつもの熱が静かに重なって、リナは「わたしの場所は、ここにある」と胸の中で呟きます。


そして物語は、もう次の方を向いています。ハンドルから手を離せば機械は止まる。途中の数を保持しておく仕組みがない——「次は、数を覚えてくれる機械が要る」というリナの呟きが、夕陽の差す工房に静かに置かれて、この章は一つの区切りを迎えます。


ここまで読んでくださって、本当にありがとうございます。


机の上には、ハンドルから手を離されたまま静かに止まっている四桁加算機。組み上がってから、もう一回も狂っていません。明日また組み直しはいるけれど、それでも確かに「動く機械」として、ここに座っています。リナがこの五日間で受け取ったもの——父の手、グスタフの軸、エルナの目線、母の粥の温度——も、たぶん同じように、組み直しをしながら一緒に運ばれていくのだと思います。


ここから先の区切りでも、また一緒に歩いていただけたら嬉しいです。


次の話もお楽しみに。


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

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

↑ページトップへ