・大きな数の積                       GAI 氏

 少し大きな数どうしのかけ算をやるとき、手元に電卓等ないときは億劫になる。このとき、
次の方法でやると、慣れると通常でやる手間がはぶけてよい。

<やり方> かける2数をX,Yで表す。

1.4桁どうしなら数字の真ん中で2分して、上半分、下半分に分ける。

例 X=1234 → x1=12 、x0=34  同様に、Yの方も、y1、y0で分けておく。

2.x1-x0、y1-y0を計算して、メモしておく。

3.z2=x1*y1、z0=x0*y0 を計算し、メモしておく。

4.z1=(z2+z0)-(x1-x0)*(y1-y0) を計算する。

5.元の2数X,Yをかけた数Zは

    Z=z2*(102)2+z1*(102)+z0=z2*10000+z1*100+z0    で求められる。

<計算例1> X=1673、Y=4649 → X*Yを求める。

1.x1=16、x0=73 、y1=46、y0=49

2.x1-x0=-57 、y1-y0=-3 (memo)

3.z2=x1*y1=16*46=736 、z0=x0*y0=73*49=3577 (memo)

4.z1=(z2+z0)-(x1-x0)*(y1-y0) =(736+3577)-(-57)*(-3)=736+3577-171=4142

5.求める積の値Zは、

  Z=z2*10000+z1*100+z0=736*10000+4142*100+3577=7777777

<参考例2> X=985274、Y=73587 → X*Yを求める。

1.Xの数字に合わせて2分する。 x1=985、x0=274 、y1=73 、y0=587

2.x1-x0=711 、y1-y0=-514

3.z2=x1*y1=985*73=71905 、z0=x0*y0=274*587=160838

4.z1=(z2+z0)-(x1-x0)*(y1-y0) =(71905+160838)-(711)*(-514)=598197

5. 求める積の値Zは(千の位で2分しているので)、

  Z=z2*1000000+z1*1000+z0=71905*1000000+598197*1000+160838

       =72503357838


 この計算方法はコンピュータの中で積の計算を行わせるときに使われているカラツバ法と
いうアルゴリズムを用いたものを利用したものです。加減算の回数は増えるが、積を行う回
数が減らせて演算コストを3/4に減らせるという。

 読んでいた本で紹介していますので、詳しい方は詳細をお知らせ下さい。


(コメント) 4桁どうしの場合、

 Z=X*Y=(x1*100+x0)*(y1*100+y0)=(x1*y1)*10000+(x1*y0+x0*y1)*100+x0*y0

  =z2*10000+(x1*y0+x0*y1)*100+z0

  ここで、 (x1-x0)*(y1-y0)=x1*y1-(x1*y0+x0*y1)+x0*y0=z2+z0-(x1*y0+x0*y1)

 より、 x1*y0+x0*y1=z2+z0-(x1-x0)*(y1-y0) なので、

 Z=z2*10000+{z2+z0-(x1-x0)*(y1-y0)}*100+z0=z2*10000+z1*100+z0


(コメント) 大きな数の積ではないが、世間には、「岩波メソッドゴースト暗算」なる方法が存
      在するそうだ。東大医学部生の考案と聞く。どんな方法かちょっと覗いてみた。

例 74×8=592 は、ゴースト暗算では次のように求めるらしい。

    7×8=56 に、4×8=32 の3を加えて、56+3=59

    よって、求める答えは、59に残りの2を添えて、 592

例 74×89=6586 は、ゴースト暗算では次のように求めるらしい。

    7×8=56 に、4×8=32 の3を加えて、56+3=59

    それに、残りの2を添えて、 592

    592に、7×9=63 を加えて、 592+63=655

    さらに、655に、4×9=36 の3を加えて、658

    よって、求める答えは、658に残りの6を添えて、 6586

練習問題  68×93 を求めよ。

(解) 6×9=54、8×9= → 61
    6×3=18、8×3= → 612+18=632
   よって、求める答えは、 632


(コメント) 筆算では下から(一の位から)掛けていくところを、上から(十の位から)掛けてい
      るところが斬新ですね!何となく、GAI さんの方法と同じ匂いを感じました...。


 90以上の数同士の積(もちろん、以下の方法は89以下でも使えるが、あまりメリットは少
ない)について、次のような暗算の方法が知られている。

例 94×93 を求めよ。

 94と93の100に対する補数を求めて、 6 と 7

 このとき、 100−(6+7)=87 、6×7=42

 よって、 94×93=100×87+42=8742

 原理は単純である。

 94×93=(100−6)(100−7)
       =1002−100×(6+7)+6×7
       =100×(100−(6+7))+6×7

から明らかだろう。

 この手法は、5以上の1桁の数同士の積にも有効である。

例 8×6 を求めよ。

 8と6の10に対する補数を求めて、 2 と 4

 このとき、 10−(2+4)= 、2×4=

 よって、 8×6=10×4+8=

 原理を確かめておこう。

 8×6=(10−2)(10−4)
     =102−10×(2+4)+2×4
     =10×(10−(2+4))+2×4

 ところで、 10−(2+4)=(5−2)+(5−4) と考えられることから、5以上の1桁の数同
士の九九が両手を使って出来ることになる。

(計算の方法) 左手で指を折って8を数えると、3本が立って、2本が折れている。同様に、
         右手で指を折って6を数えると、1本が立って、4本が折れている。
          このとき、立っている指の本数の和 3+1=4 が答えの十の位の数。
                折っている指の本数の積 2×4=8 が答えの一の位の数。
         よって、 8×6=48

(参考:桜井進の数と科学のストーリー(朝日新聞 平成26年1月12日付け朝刊))


                                            投稿一覧に戻る