小学校で習う日本の筆算は「アルゴリズム」だと知って、えっと思ってしまった
たしかに、あの一連の手順を知らなければ二桁以上の掛け算の解法は想像がつかない
・・・今回は「筆算とアルゴリズム」の価値について考えています
* * *
ちなみに筆算の方法は、それぞれの文化圏で独自にやり方がある
数千年前のエジプトのナイル川の氾濫対策の公共事業には、大きな数の計算方法があったはずで、その時代から技法があるのにそれが伝わらずに文化圏ごとに計算方法が違う
このことから類推できるのは、大きな数の計算技法は「すごい価値がある」ので、秘密にされてきて、文化圏ごとに独自に発明する必要があったのだろうと
単なる技法として習った気がする筆算の価値を、自分はよく分かってなかったかもしれない
* * *
話をアルゴリズムに戻すと、アルゴリズムとは、手に余るような大きな目標を、単純な作業に分解して行う仕組みだと言える
日本の筆算を改めて言うなら、例えば322✖️212みたいな計算は、
・一桁同士の掛け算
・繰り上がり
・同じ桁の足し算
という3つのプロセスに分解してそれを繰り返すことで、目標の難易度を下げて達成しやすくしている
* * *
ちなみにインドの筆算で322✖️212は、
・3本,2本,4本(322)と、2本,1本,2本(212)と数のぶんだけ交わるように線を引く
・桁ごとに交点を数える
・同じ桁の足し算
・繰り上がり(上の計算なら12が繰り上がって、68164が答え)
というプロセスに分解して行う
* * *
余談だが比較すると
・インド筆算は、一桁掛け算知識が不要 / 計算は2つの項まで
・日本筆算は、一桁掛け算の暗記が前提 / 項の数にしばられない
という特徴がある
* * *
* * *
アルゴリズムの話を展開させる
この「難しいことを簡単な作業の繰り返しに分解して達成する」ことは多くの人が、日常的に行っていると思うのだけど、その分かりやすい極みがプログラミングなんだろうと
例えば10万円を、利率1%で10年の複利計算は、
m = 100,000
K = 1.01
Years = 10
for ( y = 1 to Years ){
m = m * k // 左辺に右辺の計算を代入する
}
print ( m ) // 110462円
これも複利計算という手間のかかる計算を、「一年毎の計算と年数」という形に分解して計算を繰り返す仕組み(コンピュータ)を使うことで結果を得ている
つまりは、筆算を学ぶということは、プログラミングを学んでいることであり、アルゴリズムを学ぶことなんだと
もっと言うと、大量生産の仕組みは全て「アルゴリズム」で作られているわけだから、現代社会の縮図を一番簡単に学べるのが「筆算」なのだろう
* * *
* * *
・・・さてさて、筆算の価値がわかってちょっと納得です
個人的に、web版の「カード・ドラッグ型」筆算アプリを作っていて、「筆算を学ぶことにエネルギーをかける意味ってなんだろう?」と思っていたところでした
ちなみに「カード・ドラッグ型」というのは、数字を書く代わりに、数字カードをドラッグすることで筆算をできるようにしたものです
たったそれだけのことですが、文字や数字を書くのが苦手で筆算ができない子どもが、筆算ができるようになるのです
iOS版はアップルストアにあるので、入り用の方はこちら「札算」をApp Storeで(無料です)
web版を待つ!という方は完成まで、読者になっておくのがオススメ(笑)