我試圖找到一個給定的一組數字的公式計算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)或其後繼者之一。 –
當你不知道什麼是錯的時候,我們並不善於提供幫助,你可能想在來這裏之前先弄清楚什麼是錯誤的。要嘗試的技巧包括使用調試器或將調試語句添加到代碼中。 –