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 + bn1×2n1 + ・・・ + b1×2 + b0

 

と書けたとする。ただし、

 

    bp = 1 または 0

 

だ。まず、y を 2 で割ろう。

 

    y / 2 = ( bn×2n1 + bn1×2n2 + ・・・+ b2 ×2 + b1 ) + b0 / 2

      = y1 + b0 / 2

 

となる。右辺 1 行目の括弧の中を y1 と書いた。ここで、b0 は 1 か 0 なので、0 だったら無いし、1 だったら、1/2 になってしまい、この部分は「余り」になる。また、

 

    y1 =  bn×2n1 + bn1×2n2 + ・・・+ b2 ×2 + b1

       =  2×( bn×2n2 + bn1×2n3 + ・・・+ 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×2n2 + bn1×2n3 + ・・・+b2 + b1 / 2

         = y2 + b1 / 2

     y2 =  bn×2n2 + bn1×2n3 + ・・・b3×2 + b2

       =  2×( bn×2n3 + bn1×2n4 + ・・・+ 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 + bn1×2n1 + ・・・ + b1×2 + 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進数)