2桁×2桁のかけざん
忘れっぽいオレでも2桁×2桁のかけざんを暗算できないか? と、以下のような方法を考えた。筆算の手順と比べて憶えておく数字が少ないので、練習すればオレでもできるような気がする。キーワード: 算数、算術、暗算、2桁、かけ算、乗算
- 2桁の整数ふたつ、片方は十の位が a・一の位が b、他方は十の位が c・一の位が d とする。この2つを掛け算するには…
- M = a*d + b*c (内内・外外、筆算の書き方なら対角線) を計算する。M を覚えておく。
- a*c*10 を計算し、M に加える。
- M を 10倍する。
- b*d を計算し,M に加える。
- M が答である。
(証明) x = 10 a + b y = 10 c + d と表す。 x * y = ( 10 a + b ) * ( 10 c + d ) = 100 a c + 10 a d + 10 b c + b d = 100 a c + 10 ( a d + b c ) + b d (ad+bcのような複雑な計算は最初にやったほうが忘れにくいと思うので) = 10 ( a d + b c ) + 100 a c + b d (桁が増える演算はできるだけ遅くしたいので) = ( ( a d + b c ) + 10 a c ) * 10 + b d
人間の脳にとって暗算しやすいアルゴリズムって、どんなのだろう? 人間の脳にはどんなレジスタが何本あるの? たぶん10進ひとケタを1レジスタと考えるんだろうな。スタックも、プッシュしてからポップするまでの時間が長いと、データを忘れちゃったり。
まあ、とりあえず実例を見てみようかねぇ。
23 * 45 = ? 内内・外外の計算 : M = 3*4 + 2*5 = 22 十の位どうしの計算 : M に 2*4*10 = 80 を足す。M は 102 になる。 シフト : M を 10倍する。M は 1020 になる。 一の位どうしの計算 : 3*5 = 15。これを M に足すと、答えは 1035。