我正在尝试为方程找到一组给定的数字
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
我们有新的 X,Y,Z 匹配 1 1 1 更改 X 匹配 1 1 1 更改 X 匹配 1 1 1 更改 X 匹配 1 1 1 更改 X 匹配 1 1 1 更改 X 匹配 1 1 1 更改 X 匹配 1 1 1 更改 X比赛 1 1 1 改变 X 比赛 1 1 1 改变 X 比赛 1 1 1 改变 X 比赛 1 1 1 改变 X 比赛 1 1 1 改变 X 比赛 1 1 改变 X 比赛 1 1 1 改变 X 比赛 1 1 1 改变 X 比赛 1 1 1 更改 X 匹配 1 1 1 更改 X 匹配 1 1 1 更改 X 匹配 1 1 1 更改 X 匹配 1 1 1 更改 X 匹配 1 1 1 更改 X 匹配 1 1 1 更改 X 匹配 1 1 1 更改 X