ユーザーが数値「N」を入力すると、A ^ 5 + B ^ 5 + C ^ 5 のすべての可能な値を見つけるアルゴリズムを作成しようとしています。
たとえば、N=100 の場合、配列の各スロットに A^5 + B^5 + C^5 の 1 ~ 100 の数字を差し込むことで見つかった数字が含まれる、すべての可能な値を含む配列を作成したい. したがって、配列内の位置の 1 つには (1^5 + 1^5 + 1^5) の 1 が含まれます。配列内の別の位置には、数値 355447518 (19^5 + 43^5 + 46^5 から) が含まれています。したがって、配列には 100^3 要素が含まれます。
public long[] possibleValues(int n)
{
long[] solutionSet = new long[(int) Math.pow(n, 3)];
for(int i=1;i<=n;i++)
{
solutionSet[i] = ((long) Math.pow(i, 5) + (long) Math.pow(i, 5) + (long) Math.pow(i, 5));
//testing purposes
System.out.println(i +"^5 " + "+" + i+"^5 " + "+" + i+"^5" + "=" + solutionSet[i]);
}
return solutionSet;
}
それは私がこれまでに持っているものですが、私の問題は、Nのすべての順列を実行できないことです.Nのすべての可能な順列を取得する最良の方法は何ですか? これを必要以上に複雑にしていますか?可能なすべての (A、B、C) をどのように配置しますか?