はじめに ちょっと前に、こんな問題が話題になった。 ネタ元はどこか知らないが、僕は以下のサイトで知った。 適当に和訳してみた。 元の出題は果物とか使ってて「数学パズルです〜」みたいな顔をしているが、これは典型的ディオファントス方程式で、途中で楕円曲線が出てくるガチな問題になっている。解説は先のサイトに書いてあるが、いくつか天下りな箇所があるので、そこをちょっと丁寧に解説しつつ、Rubyで解を探してみる。 方針 問題は以下の通り。 上記を満たす「自然数」の組(a,b,c)を求める。すぐに分かる通り、もしひとつの解の組(a,b,c)が求まったら、それぞれ定数倍した(ta, tb, tc)も解となる。従って、大事なのは(a,b,c)の比であり、例えば$c=1$に固定して、(a,b)の有理数解を求める、という問題と等価である。従って、この問題の自由度(実質的な変数の数)は2となる。 さっきの式の分