ところで, 筆算は下の桁から始め, 算盤は上の桁から足し始める. もちろん, 結果は同じになる. これは一体どういうことかと, 子供のころ不思議であった.
実は, 足し算(引き算もだが)は, 繰上げを正しく処理し, 全部の桁について加算するなら, どの順に桁を選んでやっても構わないのである.
算盤で 8 8 8 8 8 8 8 8 に 1 1 1 2 1 1 1 2 を足すとき, まず最初の3桁で,
8 8 8 に
1 1 1 を足すと
9 9 9 になる.
次に8に2を足すから, 10になるが, 算盤流では8を払ってその桁を0にしてから, 繰上げ処理に入る. つまり, 次の9に1を足す. それには9を払い, さらに繰上げを処理する. 3つの9から繰上げが続き, 9の上の桁に1がでて止る. 都合4回繰り上げた. 繰上げをピリオドで示し, これを 1.0.0.0.0 と表わす.
その次に3回9が得られ, 1.0.0.0.0 9 9 9 となり, 最後の8+2でまた繰上げが発生. 4回繰り上げて1.0.0.0.1.0.0.0.0 が得られる.
以上が算盤であった.
筆算だと右端の8+2から始め, この桁の結果が0, 繰上げがでる. 従って .0 となり, 繰上げがあったことを記憶して, 次の8+1に進む. この和は9だが, 繰上げがあったので, 0になって再び繰上げを記憶, 次へ進む. このようにして, .0.0.0.0 まで来た. 次は8+2なので, 和は10. それに繰上げで11になり, この桁が1となり, さらに繰上げが続く. こうして,1.0.0.0.1.0.0.0.0となる.
左右のどちらから計算しても, 繰上げの出る場所は決っている.
タイガーのような計算機ではどうか.
8 8 8 8 8 8 8 8 に
1 1 1 2 1 1 1 2 を足すと一旦
9 9 9.0 9 9 9.0 となり,
繰上げが発生した場所がマークされる. その後, 下の桁から繰上げセンサーがマークをスキャンし始める. マークがあると, 繰上げピンにより, 次の桁を1増やす. この結果繰上げが生じることがある. 今の場合もそうだ.
9 9 9.0 9 9.0.0 となり, スキャンは今つけたマークのところに来る. そして9を0にし, 次に桁との間にマークする. 繰上げで1増やそうとするとき, その桁が9でなければ繰上げ処理は終る. 0のところが 1.0.0.0.0 となるが, その次にすでにマークがあるので, 続く9を次々を0にして繰上げを伝える.
結局, 上の算盤や筆算と同じ場所で繰上げが生じ, 同じ結果になる.
足し算をランダムな順でやってみよう.
0 3 6 2 7 5 1 4 ← 足す順
1 1 1 2 1 1 1 2 ← 足す数
8 8 8 8 8 8 8 8 ← 元の数
まず順が0の桁で足す. 従って
0 3 6 2 7 5 1 4 ← 足す順
1 1 1 2 1 1 1 2 ← 足す数
9 8 8 8 8 8 8 8 ← 元の数
となる. 繰上げはない. 次に順が1の桁へ行く.
3 6 2 7 5 1 4 ← 足す順
1 1 2 1 1 1 2 ← 足す数
9 8 8 8 8 8 9 8 ← 元の数
順が2の桁へ行く
3 6 2 7 5 4 ← 足す順
1 1 2 1 1 2 ← 足す数
9 8 8.0 8 8 9 8 ← 元の数
と繰上げが生じたからその処理をして
3 6 2 7 5 4 ← 足す順
1 1 2 1 1 2 ← 足す数
9 8 9.0 8 8 9 8 ← 元の数
順が3の桁
3 6 7 5 4 ← 足す順
1 1 1 1 2 ← 足す数
9 9 9.0 8 8 9 8 ← 元の数
順が4の桁, 繰上げも処理する.
6 7 5 4 ← 足す順
1 1 1 2 ← 足す数
9 9 9.0 8 9.0.0 ← 元の数
順が5の桁
6 7 5 ← 足す順
1 1 1 ← 足す数
9 9 9.0 9.0.0.0 ← 元の数
順が6の桁
6 7 ← 足す順
1 1 ← 足す数
1.0.0.0.0 9.0.0.0 ← 元の数
順が7の桁
7 ← 足す順
1 ← 足す数
1.0.0.0.1.0.0.0.0 ← 元の数
これで, お勧めはしないが, どういう順に足してもよさそうだと分かる.
十進法の2つの数を足すとき, 各桁で加算し, 仮の和 0≤t<19を得る.
それと下の桁からの繰上げの有無により, その桁の真の和と, 上の桁への繰上げが得られる.
t<9なら, 繰上げのありなしに拘らず, 上の桁への繰上げは生じない. 真の和は, 繰上げがないならt, あるならt+1.
t=9で, 繰上げがないなら, 繰上げは生じず, 真の和は9. 繰上げがあるなら, 繰上げが生じ, 真の和は0.
10≤tなら, 繰上げのありなしに拘らず, 上の桁への繰上げが生じる. 真の和は, 繰上げがないならt-9, あるならt-10.
上の加算の例でいうと,
8 8 8 8 8 8 8 8
1 1 1 2 1 1 1 2
9 9 9 0 9 9 9 0 ← 仮の和
. . ← 繰上げ
0 0 ← 真の和
. . ← 繰上げ
0 0 ← 真の和
. . ← 繰上げ
0 0 ← 真の和
. . ← 繰上げ
1 1 ← 真の和
0 件のコメント:
コメントを投稿