Footprints

弁護士・伊藤雅浩による仕事・趣味・その他雑多なことを綴るブログ(2005年3月開設)

足し算のアルゴリズム

最近,長男は,簡単な足し算がわかるようになってきた。


一桁と一桁の足し算なら,正答率が高くなってきた。足し算のやり方を教えたことはないのだが,彼の反応,傾向からすると,もっとも単純な方法,すなわち,頭の中で一つずつ数を数える方法で計算していると思われる。


というのも,例えば,「9+1」は,即答できるのに,「1+9」は時間がかかるからだ。そして,後者のように「足す数」が大きい場合のほうが間違える確率もあがる。


すなわち,A+Bを計算するのに,

for i=1 to B
  A = A + 1
next i

というアルゴリズムで解いている。一見,簡単そうだが,この方法を実装するには,答えとなるべき数(上記のA)に加えて,足す回数(上記のi)という二つの変数を記憶することが必要である。当然,計算コストや,エラー発生確率はBの大きさに比例して大きくなる。大人だって,この方法で足し算をしなければならないとなったら,Bが10を超えたら厳しいだろう。


だから,「31+4」ぐらいは,意外とすんなりできるのに,「4+31」は「わからない」という。まあ,一桁どうしの足し算ができれば当面困ることはないのでよいのだが。