我正在研究数论中的一个问题,该问题需要我解决一个相当复杂的丢番图方程。我们称这个方程为 f(r1, r2, ..., rk)。等式中的变量数量本身是可变的。这就是我被编程绊倒的地方。
我希望编写一个签名如下所示的 java 方法:
int[] getExponents(int n, int k, int max);
在这里,参数k等于丢番图方程f(r1, ... , rk)中的参数数量。
此方法应评估r1, ..., rk的所有组合的f(r1, ... , rk)使得0 < r1 < r2 < ... < rk < max,其中max是我们方法中给出的参数签名。
如果我们发现r满足n = f(r1, ... , rk)那么我们希望将r1, ... , rk作为整数数组返回。(值n在我们的方法签名中给出。)
我怀疑这种方法会使用递归。不幸的是,无论是我的编程技能还是我的耐心都不足以找到它。
我将感谢任何能够为我概述这种方法的人。