Superb Garbages 2

千野純一(chinorin)のはてなダイアリーの続きです。

繰り下がりの引き算をするときの頭の中

・ネットのとある記事を読んでいて懐かしいことを思い出した。暗算で繰り下がりの引き算をするとき、頭の中でどういう計算をしてますか? 例えば 13-6 など。

・小学校低学年で習うのは、まず3は置いといて、上の桁から10借りてきて 10-6=4。それをさっき置いといたのと足す。4+3=7。⋯っていう方法だ。なお借りてきた10を返済することはない。

・小学生当時、それとは違う計算方法を自力で見つけて以来、家族などから「そのやり方はおかしい」と言われつつ、今でも頭の中ではこのように計算している:
まず 1の位を逆方向に引く。6-3=3。それを上の桁から引く。10-3=7。

・念のため、式変形の過程:
13-6
=10+3-6
=10+(-6+3)
=10-(6-3)

・あるいはこんなイメージ。6-3を10から引いたのが答え。

f:id:chinorin:20220123022543p:plain

 (1/28追記)なんだこれ。こたえの7とか書いてあるけどそこに◯は8個あるんだがwww 面白いのでこのままにしとこ。計算の意味自体はこれでもわかるだろう。

・これを採用する理由は、ワーキングメモリの使用量が少なく、処理にかかる時間も短いと感じるからだ。たぶん。最初の10借りるメソッドは変数を2個(3を入れる箱と4を入れる箱)用意してる感覚があって、「1桁の任意の数+1桁の任意の数」よりも「10-1桁の任意の数」の方が簡便な印象なんだ。このときの10は定数みたいな感覚で、完全にテーブルの参照で答えを出している。

・いや、当然「1桁の任意の数+1桁の任意の数」だってテーブルを参照するんだけどさ、このテーブルって2次元配列じゃん? 一方「10-1桁の任意の数」のテーブルは1次元じゃん?

f:id:chinorin:20220128030123p:plain


・まあ、そんだけなんだけど。なんか「そのやり方はおかしい」と言われることが多い子供だった記憶があるんだが、それらの答え合わせを今するのはちょっと面白いかもしれない。しかし具体的に何についておかしいと言われていたのかはあんまり思い出せないのでムリか。

・ちなみに幼い頃、たぶん5歳くらいまではとにかく身の回りにある機械を分解してしまう子供だった⋯っていうのは書いたっけ? 最近の展開は、それの答え合わせをしてる感覚がある。

・当時、時代的にまだデジタル機器はそれほど多くなく、手にかけたのは例えばカセットレコーダーとか時計とかそのあたりだったと思う。どんな仕組みで動いてるのか知りたいというのももちろんあったが、単純にぜんぶバラバラにして部品を並べたいみたいな欲求があったような。

・散々叱られて数年の潜伏期間を経た後、MSXとソフトウェアに出会ったのは8歳の頃の出来事である。