第七章 歯車の歯について
本としては、1以上の整数の歯をもつ歯車Aと、歯車Bの間にいくつか歯車をかませて、速度をどうにか変えたい、ということ。
やりたいことは、実数を有理数の積によって近似したい、ということである。
つなぎ方の制約として、歯車と歯車は直列につなぐ。つまり、ひとつの入力に対して、ひとつの出力を持つ。
歯車の法則、というものを調べてみると、歯車の速度変換は、歯車の歯の数だけで決まるらしい。
セミナーの最中は理解が及ばなかったのだが、おそらく右図のような歯車だけなら、リンクの歯車の法則から言うと、最初と最後の歯車だけで最終的な変換が行われるが、左図のような歯車の真ん中のやつ(複合歯車という)をかませると、たぶん、角速度から考えて、外側の歯車の歯の数が、内側の歯車の歯の数がだとすると、速度比はになる。
だから、最初と最後は直列つなぎ、間には複合歯車をかませることにすると、最初と最後の歯車の比をとすると
を目指す。
本中に出ていた近似値を探すアルゴリズムは、大学入試でよくある
aとbが互いに素のとき、を満たす自然数の組を探せ
という問題。
プログラムするときには、誤差が0のものはabからすぐわかるので、誤差が絶対値1になるものをひとつ見つければよい。
そうしたら、ふたつの組からたくさん解を生成できる。
を満たすの組のなかから、に対する誤差をどれだけ小さくできるかごりごりやることもできるが、誤差の範囲をあらかじめ設定してしてもよい、というか、しないとプログラムが延々まわる。