ひっ算
小学生で四則のどのような計算でもできるようになる必殺の技がひっ算です。ところで,その仕組みについてはどうでしょうか。
足し算・引き算については,自然な仕組みになっています。かけ算については,分配法則を使って,各位の計算を順序立てて行っています。わり算はどうでしょうか。わり算のひっ算の仕組みは直感的に理解できるような・理解できないような複雑なものです。
手順は小学校で習いましたから,分かると思います。
上のひっ算のコマンドは次の通りです。
\begin{tabular}{rlrrrr}
& & & 2 & 5 & 7
\\
\cline{2-6}
21 & \kern-5pt \Big)& 5 & 4 & 1 & 2
\\
&& 4 & 2
\\
\cline{3-4}
& & 1 & 2 & 1
\\
&& 1 & 0 & 5
\\
\cline{3-5}
& & & 1 & 6 & 2
\\
& & & 1 & 4 & 7
\\
\cline{4-6}
& & & & 1 & 5
\end{tabular}
online latex equation editorを使い,表示しています。
どのようにして,商の各位の値を計算していくのかを考えていくことにします。
実は,この仕組みを改めて理解したいと感じたのは,有理数は絶対に有限小数化か循環小数になるものなのか気になったからです。
循環小数が有理数になることは大雑把な議論ですが示すことができます。循環しない小数が有理数になり得ないと言い切れるのか,それを証明することがきっかけでした。
問題の明確化
商の各位の値を順次計算していくことから,10進法を計算の仕組みに取り入れていることに気をつけます。一般に$d>1$進法とは,正の整数$a$に対して,
a = a_0 + a_1 d^1 + a_2 d^2 + \cdots + a_n d^n
各$i$は,$0 \leq a_i < d$を満たす整数と表した,整数の組$(a_0,a_1 ,a_2, \cdots , a_n)$のことです。普通は$d=10$とし,左側の数の方が大きなくらいの数としています。
割り算のひっ算は,いかにして商を$d$進数で表していくのかがここでの論点となります。
ひっ算の手順
ひっ算の手順では,商を位が大きい方から求めていきます。さらに次のステップに進むために,余りを出します。ここでの商と余りを出す操作をここでは解き明かします。
まず,割る数を大きくすることから始めます。注目する点は,
a > b \cdot d^n
となる最大の$n$が存在することです。これで商と余りがでます。$a$を$b \cdot d^n$で割ったときの商を$c_n$,そのときの余りを$r_n$とする。つまり,
a=c_n \times b \cdot d^n + r_n
と変形できます。この$c_n$, $r_n$は一意に決まります。ただの書き換えになりますが,この式は次のように読みかえることができます。
a=b \times c_n \cdot d^n + r_n
$b$で割った商が$c_n \cdot d^n$,余りが$r_n$。ただし,通常$b < r_n$だから,$r_n$を$b$で割った余りということはできません。まだ計算途中です。しかし,ひっ算の計算の1ステップは終わりました。(商が$d$進数で表される第1ステップが終了しましたが,$c_n < d$が満たされているのか,気になります。しかし,これは最後に議論したいと思います。)
$r_n < b \cdot d^n$だから,次は$r_n$を$b \cdot d^{n-1}$で割り商と余りを求めていきます。この余りの部分に同じ方法を用いていきます。$r_n$が$b\cdots d^{n-1}$より小さい場合は,商が0,あまり$r_{n-1}=r_n$としましょう。
r_n = b \times c_{n-1} \cdot d^{n-1} + r_{n-1}
このように,各$d^i$の位の数$c_i$が定まることが分かります。$n=0$のときの余りを求めた時点で,この作業を終えることにすると,$a$は結局,
$a= b (c_n \cdot d^n + c_{n-1} \cdot d^{n-1} + \cdots + c_0) + r_0$
となり,商を$d$進法で表したものと,余り$r_0$が得られる。
まだ編集途中