ある双曲線の整数解
36*x^2-4*x-71*y^2+8=0 の整数解の導出。
Ruby でできるだけ解いてみる。
solve.rb
dir = [[1, 0], [0, 1], [-1, 0], [0, -1]] x = y = 0 step = 1 f = ->{p [x, y] if 36 * x ** 2 - 4 * x - 71 * y ** 2 + 8 == 0} add = ->(i) { dx, dy = dir[i] x += dx y += dy } loop do 2.times do |j| step.times do f.() add.(j * 2) end step.times do f.() add.(j * 2 + 1) end step += 1 end end
実行。
$ ruby solve.rb [-1629, 1160] [-1629, -1160]
これしか見つかっていない。