两者产生随机数,其乘积不同

The two generate random numbers and their product is different

所以我创建了一个生成 2 个随机数并需要将它们相乘的程序:

public static  int thenumber(){
int number1=(int)(Math.random()*10+1);


return number1;
}
public static  int thenumber2(){
int number2=(int)(Math.random()*10+1);
return number2;
}

并在 :

中解决
public static int thefusion(){
int demi =thenumber() * thenumber2();
return demi;
}

我的问题是当我 运行 两个数字的乘积不同 例如:7 * 4 = 24

一个完整的代码示例会很好(参见 How to create a Minimal, Complete, and Verifiable example),但让我猜猜:您首先看到的是两个随机数(通过打印或其他方式)。然后你调用你的方法。该方法从 thenumber()thenumber2() 中抽取两个 new 随机数。这就是(伪)随机数的要点,你每次都不会使用相同的数字。所以如果你第一次抽到数字7和4,也许下次你抽到3和8,所以乘积是24。

有几个可能的解决方案:

  1. 调用thenumber()thenumber2()时,将结果赋给两个变量。现在你可以看到你得到了哪些数字。将这两个数字传递给您的 thefusion 方法,它应该会计算出预期的产品。
  2. 而不是 Math.random() 使用 Random class 并使用已知种子实例化它。从中提取两个数字并检查它们。从同一种子创建一个新的 Random 实例并让 thefusion() 使用它。现在它将绘制相同的两个数字,您将得到您期望的产品。