151.2で割り、2で掛け、2数の掛け算
第20回で、2桁同士の自然数の掛け算を簡単に行う方法を備忘しておいた。暗算でできるのはいいのだが、でも、九九を知っていないといけない。
そこで、2で割ることと2で掛けることと足し算を知っていれば、2つの自然数の掛け算ができることを見ておこう。ただし、暗算で行うのはちょっときついので、紙と鉛筆が必要だ。
具体例で行こう。例えば、321 × 28。数字に意味はない。
2 つ並べて、片方は 2 で割っていき、もう片方は 2 倍していく。2 で割っていって 0か 1 まで行けば終わるので、小さい数字を割っていこう。大きい数字を割っていってもいいが。今、割っていく方の数 28 は偶数なので、忘れないように記しておこう。
321 28 (偶数) (1)
左は 2 倍、右は 2 で割ると
321 × 2 = 642 28 ÷ 2 = 14 (偶数) (2)
28 を 2 で割ったら答えは偶数だ。続いて
642 × 2 = 1284 14 ÷ 2 = 7 (奇数)余り1 (3)
割り算した方の余りは無視して、答えの 7 が奇数だ。続いて
1284 × 2 = 2568 7 ÷ 2 = 3 (奇数)余り1 (4)
割った方はまた奇数が出た。続いて
2568 × 2 = 5136 3 ÷ 2 = 1(奇数)余り1 (5)
また奇数だ。割った答えが 1 なので、ここまで。
ここで、割るほうの数の割った答えが奇数の部分だけ取り出す。今だと、(3)(4)(5)だ。割った方が奇数になったときの、2倍されてきた数を足していく。今だと(3)は 1284、(4)から 2568、(5)から 5136 なので、
1284 + 2568 + 5136 = 8988
これが 321 × 28 の答え。
321 × 28 = 8988
電卓で確かめればよい。
もう一つやってみよう。531×27 。もう解説無しで、2 で掛け、2 で割ろう。
531 27 (奇数) (6)
531 × 2 = 1062 27 ÷ 2 = 13 (奇数)余り1 (7)
1062 × 2 = 2124 13 ÷ 2 = 6 (偶数)余り1 (8)
2124 × 2 = 4248 6 ÷ 2 = 3 (奇数) (9)
4248 × 2 = 8496 3 ÷ 2 = 1 (奇数)余り1 (10)
割っていった方の余りを除く答えが奇数のものは、出発の 27 を含めて(6)、(7)、(9)、(10)だ。対応する左の数字を足していこう。
531 + 1062 + 4248 + 8496 = 14337
これが 531 × 27 の答え。
531 × 27 = 14337
この計算法は、中世ヨーロッパの修道院で行われていたらしい。中世なので、数字はローマ数字。ローマ数字の足し算は簡単で、大きな数字から並べ直すだけだ。ただ、4 とか、5-1 となっている IV は、注意が必要。さっきの
321 × 28 = 8988
= 1284 + 2568 + 5136
のときは、
1284 ・・・ MCCLXXXIV
2568 ・・・ MMDLXVIII
5136 ・・・ VCXXXVI
と書ける。
V ・・・ 五千
M ・・・ 千
D ・・・ 五百
C ・・・ 百
L ・・・ 五十
X ・・・ 十
V ・・・ 五
I ・・・ 一
であり、小さいものが大きいものの左にあると、小さい方を引いた値になる。例えば
IV ・・・ 4(= 5-1)
XL ・・・ 40 ( = 50 -10 )
こうして、
1284 + 2568 + 5136 = MCCLXXXIV + MMDLXVIII + VCXXXVI
= VMMMDCCCLLXXXXXXXIVVVIIII
のように、右辺は大きい順に並べ替えた。ただし、IV だけはそのままにした。V の左の I はマイナス 1 だから、V の右の I 一つと打ち消して
VMMMDCCCLLXXXXXXXVVVIII
左から読んでいくと、VMMM(八千)DCCC(八百)LL(50+50=百=C)XXXXXXX(七十=LXX)VVV(5+5+5 = 十五=XV)III(三)なので、8988となる。
VMMMDCCCCLXXXVIII = VMMMCMLXXXVIII = 8988
ローマ数字は位取りが無いが、足し算は容易だったのだろう。あとは、2 を掛けると割るで掛け算ができた。
では、なぜ、この方法で掛け算の答えが出るのだろう。2 で割って、答えが奇数のときの相棒をとるというのが曲者だ。2 倍する方の数を x、2 で割っていく方の数を y としよう。今、y は 2 のべき乗の和で表せているとしよう。つまり
y = bn×2n + bn-1×2n-1 + ・・・ + b1×21 + b0
と書けたとする。ただし、
bp = 1 または 0
だ。まず、y を 2 で割ろう。
y / 2 = ( bn×2n-1 + bn-1×2n-2 + ・・・+ b2 ×2 + b1 ) + b0 / 2
= y1 + b0 / 2
となる。右辺 1 行目の括弧の中を y1 と書いた。ここで、b0 は 1 か 0 なので、0 だったら無いし、1 だったら、1/2 になってしまい、この部分は「余り」になる。また、
y1 = bn×2n-1 + bn-1×2n-2 + ・・・+ b2 ×2 + b1
= 2×( bn×2n-2 + bn-1×2n-3 + ・・・+ b2 ) + b1
となるので、b1 の部分以外は 2 で括っているので偶数、したがって、b1 が 0 ならば、余りを除いて 2 で割った y / 2 は偶数、b1 が 1 ならば、2 で割った y / 2 は奇数というわけだ。
y / 2 = (余りを除いて偶数)⇔ b1 = 0
y / 2 = (余りを除いて奇数)⇔ b1 = 1
こうして、2で割って奇数ならば、b1 = 1 が取り出せる。偶数だったら 0 なので、無視しておこう。
続いて、y1 を 2 で割ると、
y1 / 2 = bn×2n-2 + bn-1×2n-3 + ・・・+b2 + b1 / 2
= y2 + b1 / 2
y2 = bn×2n-2 + bn-1×2n-3 + ・・・b3×2 + b2
= 2×( bn×2n-3 + bn-1×2n-4 + ・・・+ b3) + b2
こうして、b2 の部分以外は 2 で括っているので偶数、したがって、b2 が 0 ならば、余りを除いて 2 で割った y1 / 2 は偶数、b2 が 1 ならば、2 で割った y1 / 2 は奇数というわけだ。
y1 / 2 = (余りを除いて偶数)⇔ b2 = 0
y1 / 2 = (余りを除いて奇数)⇔ b2 = 1
こうして、y から、余りを除いて 2 で 2 回割って奇数ならば、b2 = 1 が取り出せる。偶数だったら b2 =0 なので、無視しておこう。
これを繰り返していくと、y を、余りを無視しながら 2 で割っていって答えが奇数になったところを取り出していくと、
y = bn×2n + bn-1×2n-1 + ・・・ + b1×21 + b0
の展開係数の bp = 1 の部分が取り出せて、2 のべき乗展開が完成するわけだ。こうして、x との掛け算は
x y (奇数なら b0 = 1、偶数ならb0 = 0)
2x y / 2 (余りを除いて奇数ならb1 = 1、偶数ならb1 = 0)
22 x y1 / 2 = y / 4 (余りを除いて奇数ならb2 = 1、偶数ならb2 = 0)
・・・・・・・・・
2n x y / 2n (余りを除いて奇数ならbn = 1、偶数ならbn = 0)
となるので、2で割って奇数の部分のみ取り出すと、例えば y が奇数なら、b0=1、またy/2 も奇数なら b1=1 なので
x + 2x + 22 x・・・+ 2n x
= x( 1 + 2 +・・・+ 0 +・・・ + 2p + ・・・+ 0 + ・・・+ 2n )
= xy
となるというわけだ。
yの 2 進数表記を見つけることにもなった。
例えば、最初の 28 だと、(偶数)(偶数)(奇数)(奇数)(奇数)となった。偶数に 0、奇数に 1 を割り振って、右から左に並べると
28 (10進数)= 11100(2進数)
27 のときは、(奇数)(奇数)(偶数)(奇数)(奇数)だったので、右から左へ
27 (10進数)= 11011 2進数)