求解双色子方程的算法

时间:2019-02-18 18:20:48

标签: algorithm equation diophantine

我正在尝试开发一种算法,该算法用于查找具有像双色子方程上限的整数解:

a^3 + b^3 + c^3 = d^3

例如:

3^3 + 4^3 + 5^3 = 6^3

我想用许多方程式折磨您,这些方程式使我们找到了如何找到a,b,c和d的问题的答案。文章的作者雅各布·佩雷尔曼(Jacob Perelman)称其为“三次方的不定方程”,它为我们提供了:

a =  28r^2 + 11rs - 3s^2, 
b =  21r^2 - 11rs - 4s^2, 
c =  35r^2 +  7rs + 6s^2, 
d = -42r^2 -  7rs - 5s^2,

对于任何给定的r和s,例如,给定r = 1且s = 1,我们得到:

a = 36, b = 6, c = 48 d = -54, // reducing by the common factor of 6:
a = 6, b =  1, c = 8, d = 9

因此算法(给定上限b)可能是: 1.取任意r和s,例如r = 1,s = 2 2.执行计算并获得a,b,c,d 3.检查我们是否只有一个负数,如果不继续的话。 4.检查x,y,z,t

出现以下问题:

  1. 如果我们更改四个(3,4,5,-6)的初始组的顺序=>(3,5,4,-6),我们将得到新的求解公式:

    a = 20r ^ 2 + 10rs-3s ^ 2,

    b = 12r ^ 2-10rs-5s ^ 2,

    c = 16r ^ 2 + 8rs + 6s ^ 2,

    d = -24r ^ 2-8rs-4s ^ 2。

因此,通过这样做,我将获得无限多个新公式。我该如何处理?

  1. GCD计算(尤其是对于4个相当大的数字)非常耗费资源,我应该如何处理?

  2. 由于GCD的缘故,即使r和s很大,最终也会产生非常小的a,b,c和d。选择要循环的初始r和s点的策略是什么?

  3. 您知道任何更简单的解决方案吗?

0 个答案:

没有答案