・大きな数の積 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=72 → 612
6×3=18、8×3=24 → 612+18+2=632
よって、求める答えは、 6324
(コメント) 筆算では下から(一の位から)掛けていくところを、上から(十の位から)掛けてい
るところが斬新ですね!何となく、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)=4 、2×4=8
よって、 8×6=10×4+8=48
原理を確かめておこう。
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日付け朝刊))