ユークリッドのアルゴリズムと、勉強が好きだという話
計算事始めの第9回にて、アルゴリズムの例として出てきた話。
2つの整数 a, bの最大公約数を求めるための方法で、ユークリッドの互除法というものがあるそうだ。
1. aとbが等しくない間,以下を繰り返す
1.1 a が b より大きければ,
1.1.1 a-b を a の値とする
1.2 そうでなければ,
1.2.1 b-a を b の値とする
2. 最大公約数として a の値を表示する
要は、2つの数の差を取り続けたらそのうち自然と最大公約数にたどり着くというのだ。
授業のテキストだけ読むと、アルゴリズムの手順はわかっても、「なぜそうなるのか」がいまいちピンと来なかった。
最大公約数ってかけ算とか割り算で定義されるものじゃないの?なんで引き算だけで解けちゃうの??
これに関しては、wikipediaに載ってるGIFアニメがわかりやすいよ、と教えてもらった。
正直、1周見ただけではわからなかった。しかしアニメが2周目に入った瞬間に、一気にその意味が頭の中に流れ込んできた。
「数は、約数という基本単位からできている」という見方さえ修得してしまえば、こんなに単純なことはない。実際、数学の中では本当に基礎的な話なのだと思う。(何が基礎なのかもよく知らないけど)
素数だなんだとはしゃいでいる割に、私はこんなことも知らなかった。
そしてこれを知って、改めて素数というのがどれだけ特殊な数であるかを感じることができた。
数学に限らず、勉強をすると、新しい「ものの見方」を得ることができる。
それを得た瞬間、目の前にあるものが、これまでとは全く違って見えてくる。新しい世界に一歩踏み込むことができる。
その感動が楽しいから、私は勉強が好きだ。
うちの父は大学教員を退職後、実家で家事をしつつ、好きな勉強をしたり野菜を作ったりしながら暮らしている。
昔はそんな父を見ても(主に母の影響で)「お父さんは本当に勉強が好きなんだねぇ」くらいにしか思っていなかった。
しかし最近の様子を見ると、いつのまにか自分も父と同じ側に立つようになっているようだ。
父は、最近は専ら生物や社会科学の話が多いが、たしか物理が元々の専門であったはずだ。
次に帰省するまでにもう少しがんばって勉強して、うちの感じた「数字の面白さ」を父にも教えてあげよう。そうしよう。
関連URL
今日もコツコツ勉強してます。