我试图找到一个给定的一组数字的公式计算X立方+ Y立方= Z立方+ 1
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;
公共类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 = 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 1 改变x 匹配1 1 1 改变x 匹配1个1 1 改变x 匹配1 1 1 改变x 匹配1 1 1 CHANGING 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
你可能想使用类似[牛顿法(http://en.wikipedia.org/wiki/Newton %27s_method)或其后继者之一。 –
当你不知道什么是错的时候,我们并不善于提供帮助,你可能想在来这里之前先弄清楚什么是错误的。要尝试的技巧包括使用调试器或将调试语句添加到代码中。 –