割り算は「引いた回数」でしかない ── 手回し計算機で迷子にならないための一本の綱
タイガー計算器の除算は、原理は分かっているのに手でやると必ず迷子になる。迷子の正体は「いまどの桁で、何回引いたか」の帳簿が頭から飛ぶことだ。復帰のための合言葉はひとつ——被除数=除数×カウンタ+結果レジスタ。この不変量さえ握れば、機械のどの瞬間からでも現在地が復元できる。筆算との対応、ベルの意味、91÷7の完全な実況つき。
タイガー計算器で割り算をしていると、不思議な現象が起きる。原理は完全に分かっている。引き算を数えるだけ。なのに、クランクを回してキャリッジを送っているうちに、いま自分が何をしているのか分からなくなる。どの桁をやっていたのか、さっきのベルは数えたのか数えていないのか、この「1」はどこの1なのか。
私も手順を口で説明していて、左右をひっくり返して人を混乱させたことがある。だからこれは、操作者が悪いのではない。迷子になる構造が、割り算そのものの中にある。 今日はその構造を開いて、迷子から帰ってくるための綱を一本だけ渡したい。
割り算とは、引き算の回数を数えること
57257÷7 を素朴にやるなら、57257から7を引き続けて、引けた回数を数えればいい。答えは8179回と、余り4。原理はこれで全部だ。ただし8179回クランクを回すのは人生の使い方として正しくない。
そこで桁が出てくる。キャリッジを送って千の位に7を置けば、1回転で7000が引ける。つまり手回し計算機の割り算は、
大きい桁から順に、「その桁で引けるだけ引いて、回数をメモして、次の桁へ」
という圧縮版の引き算カウントだ。8179回が、8回+1回+7回+9回=25回の回転に化ける。ここまでは、たぶん誰でも分かっている。迷子はこの先で起きる。
機械の中の、三冊の帳簿
タイガーには数字の置き場が三つある。この三つの役割分担が頭から飛んだ瞬間に、人は迷子になる。
- 置数レバー——道具置き場。いま引いている数(除数)。割り算の間、ここは変わらない
- 結果レジスタ——残り。被除数から、いままで引いた分を引いた残額
- カウンタ——回数。どの桁で何回引いたか。これが最後に商そのものになる
大事なのは、カウンタが「桁ごとの回数を、キャリッジ位置に応じた桁に記録している」ということだ。千の位置で8回引けば、カウンタには8000と刻まれる。回数のメモが、そのまま位取りつきの商になる——ここがこの機械のいちばん賢いところで、同時に、いちばん迷子を生むところでもある。操作者は「回した回数」を体で数えているのに、機械は「桁つきの回数」を帳簿に付けているからだ。体の数えを捨てて、機械の帳簿を信じるのが第一歩になる。
ベルは「引きすぎ」の通知でしかない
その桁で何回引けるかを、機械は事前に知らない。だから引けなくなるまで引く。残りが除数より小さいのにもう1回引くと、結果レジスタはゼロを割って、9がずらりと並ぶ(補数——この機械には負の数の置き場がないので、99999…として現れる)。そしてベルが鳴る。
ベルの意味は正確にひとつ。「いまの1回は余計だった」。だからプラスに1回転して帳消しにする。それだけだ。筆算では「7×8=56だから8回」と先に見積もってから引く。機械は見積もれないから、引きすぎてから1歩戻る。人間の暗算力を、試行錯誤の仕組みで置き換えている——手順としては筆算と完全に同じもので、商の桁を決める方法だけが「予測」から「実測」に変わっている。
迷子ポイントもここにある。ベルが鳴った回は数えない(正確には、機械は数えてしまっているので、プラス1回転がカウンタからもちゃんと1を引き戻してくれる)。「さっきの回転は商に入ったのか?」と不安になったら、覚えておくことはひとつだけ——戻し回転まで済んでいれば、帳簿は常に正しい。
一本の綱 ── どの瞬間でも成り立つ式
そして、これが今日いちばん渡したかったものだ。割り算の最中、クランクを何回回した後でも、キャリッジがどこにいても、次の式が必ず成り立っている。
被除数 = 除数 × カウンタの表示 + 結果レジスタの表示
これは終わったときだけの検算式ではない。途中のどの瞬間でも成り立つ不変量だ。1回引くたびに、カウンタ側が除数1個ぶん増え、結果レジスタ側が除数1個ぶん減る。足したら変わらない。天秤の左右で錘を持ち替えているだけだから。
だから迷子になったら、手を止めて、この式を電卓なしで検算できる範囲で確かめればいい。「除数7、カウンタ8100、残り560。7×8100=56700、足す560で57260……57257じゃない!」となったら、どこかで戻し忘れがある。合っていれば、いまの状態から何事もなかったように続けていい。どの桁まで済んだかは、カウンタの表示がそのまま教えてくれる。過去の操作を思い出す必要は、実はぜんぶない。帳簿が全部覚えているから。
91÷7 の完全実況
小さい例で通しでやる。頭の中でクランクを回しながら読んでほしい。
- 結果レジスタに91を立てる。カウンタをクリア。レバーに7。キャリッジは十の位から(7が91の「9」の下に来る位置)
- マイナス回転。70が引かれて残り21。カウンタ「10」。——検算:7×10+21=91 ✓
- もう1回。21−70はゼロを割る。ベル。残りには99…51、カウンタ「20」。慌てない
- プラス1回転で帳消し。残り21、カウンタ「10」に戻る。この桁は1回。キャリッジを送る
- 一の位でマイナス回転を3回。21→14→7→0。カウンタ「13」。——検算:7×13+0=91 ✓
- 4回目を回すとベル(0−7)。プラスで戻す。残り0、カウンタ「13」。終了
- 読み出し:商13、余り0
ベルは2回鳴った。2回とも「その桁はもう終わり」の合図で、鳴るたびに1歩戻った。ベルが鳴るまで回すのは失敗ではなく、この機械の正規の歩き方だ。むしろベルが鳴らずに桁を終えたら、そのときこそ引き残しを疑っていい。
筆算は、暗算で高速化した機械割り算
学校で習った筆算を思い出すと、「57÷7は8」と見積もる部分だけが人間の暗算で、あとの「掛けて、引いて、下ろして」は機械と同じ動きをしている。歴史の順序で言えば逆で、筆算という人間用アルゴリズムから見積もりを取り除いて、誰がやっても(何も考えなくても)同じ答えに着地するようにしたのが機械式の試行減算だ。何も考えなくていいように作られた手順で人間が考え込んで迷子になる、というのは皮肉な話だけど、綱はもう渡した。
除数×カウンタ+残り=被除数。 迷ったらこれ。機械は一度も嘘の状態にならない。嘘みたいに見えるときは、たいてい戻し忘れの1回転が犯人で、それもこの式が特定してくれる。
——ランキン
コメント
まだコメントはないよ。最初のひとことをどうぞ。