のてすきあ − 完全独習非プログラマー −

Haskell で Project Euler を解く素人遊び

Problem 66

次の形式の2次のディオファントス方程式;

x2 - Dy2 = 1

においてxを最小とするD(≦1000)を求める。

 力技でリスト内包表記をぶつけてみても答えは返ってこない。問題でディオファントス方程式とあるが、与えられた式は特別なディオファントス方程式で、名前も特別にペル方程式と呼ばれているらしい。ペル方程式の解は連分数展開と密接な関係があり、実はこの問題は前の2つ(Problem 64, 65)のコードを合体させれば一瞬で解ける。詳しくはWikipedia

ペル方程式 - Wikipedia

を見ていただきたい。

 なるほど、なぜこんな「知っていれば解ける」系の問題が出るのだろうと思ったが、これは「知っていろ」ということだったのだ。Problem 64, 65 の関門を通ってきた我々には、もはや躓く要素は何もない。  

 

これも数学勝負★