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。