方程式の特定の数値セットを見つけようとしています
x^3 + y^3 = z^3 +1
どこ
x < y < z
以下のコードは、私が取り組み始めたものです。私が現在抱えている問題は、プログラムの最初の実行時にのみ生成される乱数であり、コードを改善する方法に関するヘルプや手がかりが大歓迎です。
import java.util.Random;
public class etude14 {
static int x = 1;
static int y = 2;
static int z = 3;
static int matchCount = 0;
public static void main(String[] args) {
while(matchCount < 23){
equatition(x, y, z);
}
}
public static void equatition(int x, int y, int z) {
double leftResult = Math.pow(x, 3) + Math.pow(y, 3);
double rightResult = Math.pow(z, 3) + 1;
if (leftResult == rightResult) {
System.out.println("Match " + x + " " + y + " " + z);
matchCount++;
changeX();
} else {
System.out.println("No Match " + x + " " + y + " " + z);
changeX();
}
}
private static void changeX() {
Random generator = new Random();
int x2 = generator.nextInt(10000) + 1;
int y2 = generator.nextInt(10000) + 1;
int z2 = generator.nextInt(10000) + 1;
if(x < y && y < z){
System.out.println("WE HAVE NEW X,Y,Z");
x = x2;
y = y2;
z = z2;
return;
}
System.out.println("CHANGING X");
}
}
最初の回答後のコード
import java.util.Random;
パブリッククラスのエチュード14 {
static int x = 1;
static int y = 2;
static int z = 3;
static int matchCount = 0;
public static void main(String[] args) {
while (matchCount < 23) {
equatition(x, y, z);
}
}
public static void equatition(int x, int y, int z) {
double leftResult = Math.pow(x, 3) + Math.pow(y, 3);
double rightResult = Math.pow(z, 3) + 1;
if (leftResult == rightResult) {
System.out.println("Match " + x + " " + y + " " + z);
matchCount++;
changeX();
} else {
System.out.println("No Match " + x + " " + y + " " + z);
changeX();
}
}
private static void changeX() {
Random generator = new Random();
int x2 = 1;
int y2 = 1;
int z2 = 1;
if (x < y && y < z) {
System.out.println("WE HAVE NEW X,Y,Z");
x = x2;
y = y2;
z = z2;
return;
} else {
x2 = generator.nextInt(10000) + 1;
y2 = generator.nextInt(10000) + 1;
z2 = generator.nextInt(10000) + 1;
System.out.println("CHANGING X");
}
}
}
出力
No Match 1 2 3
WE HAVE NEW X,Y,Z Match 1 1 1 CHANGING X Match 1 1 1 CHANGING X Match 1 1 1 CHANGING X Match 1 1 1 CHANGING X Match 1 1 1 CHANGING X Match 1 1 1 CHANGING X Match 1 1 1 CHANGING Xマッチ 1 1 1 CHANGING X マッチ 1 1 1 CHANGING X マッチ 1 1 1 CHANGING X マッチ 1 1 1 CHANGING X マッチ 1 1 1 CHANGING X マッチ 1 1 1 CHANGING X マッチ 1 1 1 CHANGING X マッチ 1 1 1 CHANGING X マッチ 1 1 1 CHANGING X マッチ 1 1 1 CHANGING X マッチ 1 1 1 CHANGING X マッチ 1 1 1 CHANGING X マッチ 1 1 1 CHANGING X マッチ 1 1 1 CHANGING X マッチ 1 1 1 CHANGING X マッチ 1 1 1 CHANGING X