Java 我的随机数生成器输出不正确
我试着让它在单独的行上打印出2和2。我已经记下了分离线的部分,但由于某种原因,这个东西输出的数字是2,然后是3。这是我的一个章节的作业,由于我的工作日程安排,召集一个小组寻求帮助很有挑战性。有人能帮我了解这里发生了什么吗?注:seedVal从4开始 使用nextInt()键入两条语句以打印两个随机整数 在0到9之间。以换行结束。例: 五, 七, 注意:对于此活动,使用一条语句可能会产生不同的结果 输出(由于编译器以不同的顺序调用nextInt())。 此活动使用两个语句Java 我的随机数生成器输出不正确,java,random,numbers,generator,Java,Random,Numbers,Generator,我试着让它在单独的行上打印出2和2。我已经记下了分离线的部分,但由于某种原因,这个东西输出的数字是2,然后是3。这是我的一个章节的作业,由于我的工作日程安排,召集一个小组寻求帮助很有挑战性。有人能帮我了解这里发生了什么吗?注:seedVal从4开始 使用nextInt()键入两条语句以打印两个随机整数 在0到9之间。以换行结束。例: 五, 七, 注意:对于此活动,使用一条语句可能会产生不同的结果 输出(由于编译器以不同的顺序调用nextInt())。 此活动使用两个语句 new Random()
new Random()
实际上是一种伪随机,每次使用它时,都会以相同的顺序为同一种子返回相同的值。
下限为零,因此需要在结果中添加1,因为不能用骰子掷0。上界是6(它返回一个介于0和5之间的随机数,但是我们加1来补偿0的下界)。
要将同一结果打印两次,您需要将其存储在变量中,当然还需要打印两次。
幸运的是,为种子6和绑定6的组合返回的第一个“random”是1。加上1,就得到了2;-)
大概是这样的:
public class DiceRoll {
public static void main (String [] args) {
Random randGen = new Random();
int seedVal = 6;
randGen.setSeed(seedVal);
int diceValue = randGen.nextInt(6) + 1;
System.out.println(diceValue);
System.out.println(diceValue);
return;
}
}
nextInt(10)表示从0开始的可能值的数量,因此最大值为9。因为提示符需要两条语句,所以需要打印两次
系统输出打印LN(randGen.nextInt(10));
系统输出打印LN(randGen.nextInt(10)) 为什么它要在单独的行上打印2和2?这会在第一次调用
nextInt
时抛出IllegalArgumentException:bound必须为正值。当它期望上限值时,您正试图给它一个种子。从同一链接:“Throws:IllegalArgumentException-如果n不是正的”否,seedVal不从4开始:int seedVal=0
seedVal
对于上限来说不是一个好的变量名。种子上限。同样,混淆种子和上限是不好的。这两件事毫不相关。
public class DiceRoll {
public static void main (String [] args) {
Random randGen = new Random();
int seedVal = 6;
randGen.setSeed(seedVal);
int diceValue = randGen.nextInt(6) + 1;
System.out.println(diceValue);
System.out.println(diceValue);
return;
}
}