割り算は余りを扱う方が難しい。
高木です。こんばんは。
馬詰が予習したがっているようなので。そのためのネタを提供したいと思います。
そのネタというのは、「モジュラ算術」です。
馬詰のことなので、キーワードだけを与えておけば勝手に調べてくるとは思いますが、せっかくなので少しウンチクを語っておくことにしましょう。
小学校で最初に割り算を習ったとき、整数の範囲で割り切れなければ「余り」を使っていたかと思います。
私にも小学三年生の娘がいますが、ちょうどそういうのを習っている時期かと思います。
その後、小数とか分数とかを習ったあとは、割り算の結果に「余り」を使うことはすっかりなくなってしまいますね。
でも、この「余り」こそが、コンピューターのプログラミングでは重要な役目を担っているのです。
数学においても、(小数を含めた)実数を扱うよりも、整数を扱う方が難しいとされています。
整数は離散的ゆえに常に微分は不可能ですし、解析的手法でアプローチできないのも厳しいところです。
では、「余り」を扱うと何がうれしいのでしょう?
ここが大事なポイントですね。
たとえば、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」です。
予習する方はぬかりなく。