割り算は余りを扱う方が難しい。

高木です。こんばんは。

馬詰が予習したがっているようなので。そのためのネタを提供したいと思います。
そのネタというのは、「モジュラ算術」です。

馬詰のことなので、キーワードだけを与えておけば勝手に調べてくるとは思いますが、せっかくなので少しウンチクを語っておくことにしましょう。

小学校で最初に割り算を習ったとき、整数の範囲で割り切れなければ「余り」を使っていたかと思います。
私にも小学三年生の娘がいますが、ちょうどそういうのを習っている時期かと思います。

その後、小数とか分数とかを習ったあとは、割り算の結果に「余り」を使うことはすっかりなくなってしまいますね。
でも、この「余り」こそが、コンピューターのプログラミングでは重要な役目を担っているのです。

数学においても、(小数を含めた)実数を扱うよりも、整数を扱う方が難しいとされています。
整数は離散的ゆえに常に微分は不可能ですし、解析的手法でアプローチできないのも厳しいところです。

では、「余り」を扱うと何がうれしいのでしょう?

ここが大事なポイントですね。

たとえば、10で割った余りを考えてみましょう。
10で割った余りなので、下一桁がそれにあたります。
宝くじとかで、下一桁の数字で当たったかどうかを判定することがありますが、ああいった処理を行うときに余りが必要になります。

あるいは、0~6の範囲の数値を繰り返す処理が必要な場合を考えてみてください。
具体的には、7枚の画像を順に切り替えるときなんかがそうです。
この場合、切り替え時には単純に1を足してから、7で割った余りを求めれば、結果は0~6の範囲におさまりますね。

このように、7で割った余りを扱う計算のしかたを、「7を法とする剰余系」といいます。
値xに関して数式で表せば、x mod 7 のように書きます。
このような計算の体系を「モジュラ算術」とか「合同算術」といいます。

モジュラ算術は結構奥が深いものがありますが、来週の勉強会は数学の勉強会ではありません。
なので、そんなに難しいことを扱うはずはありません。

結局の所、小学校で習う「割り算の余り」でしかないのです。
でも、「モジュラ算術」という言葉を知っているだけで、なんか凄いことをやっているような気分に浸れますね。

あと、Raspberry PiにはRaspbianという一種のLinuxをインストールしました。
そこでGUIプログラミングをやる場合、WindowsフォームとらWPFとかは使えません。
もちろん、MFCも使えません。

GTK+やQtは使えますが、2時間でやれるような代物ではありません。
となれば、残された選択肢はTcl/Tkしかありません。

これについてはキーワードだけ提示しておきます。

「Tcl/Tk」です。

予習する方はぬかりなく。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です