私はかなり複雑なディオファントス方程式を解く必要がある数論の問題に取り組んでいます。この式をf(r1, r2, ..., rk)としましょう。方程式内の変数の数は、それ自体変数です。これは、私がプログラミングでつまずいているところです。
署名が次のようになる Java メソッドを書きたいと思います。
int[] getExponents( int n, int k, int max );
ここで、引数kは、ディオファントス方程式f(r1, ... , rk)の引数の数に等しくなります。
このメソッドは、0 < r1 < r2 < ... < rk < maxとなるr1, ..., rkのすべての組み合わせに対して f(r1, ... , rk)を評価する必要があります。ここで、maxはメソッドで指定された引数です。サイン。
n = f(r1, ... , rk) となるrが見つかった場合、 r1, ... , rkを整数配列として返します。(値nは、メソッド シグネチャで指定されます。)
このメソッドは再帰を使用すると思われます。残念ながら、私のプログラミング スキルや忍耐力では、それを見つけることができません。
私のためにそのような方法を概説できる人に感謝します。