Java 我的随机数生成器输出不正确

Java 我的随机数生成器输出不正确,java,random,numbers,generator,Java,Random,Numbers,Generator,我试着让它在单独的行上打印出2和2。我已经记下了分离线的部分,但由于某种原因,这个东西输出的数字是2,然后是3。这是我的一个章节的作业,由于我的工作日程安排,召集一个小组寻求帮助很有挑战性。有人能帮我了解这里发生了什么吗?注:seedVal从4开始 使用nextInt()键入两条语句以打印两个随机整数 在0到9之间。以换行结束。例: 五, 七, 注意:对于此活动,使用一条语句可能会产生不同的结果 输出(由于编译器以不同的顺序调用nextInt())。 此活动使用两个语句 new Random()

我试着让它在单独的行上打印出2和2。我已经记下了分离线的部分,但由于某种原因,这个东西输出的数字是2,然后是3。这是我的一个章节的作业,由于我的工作日程安排,召集一个小组寻求帮助很有挑战性。有人能帮我了解这里发生了什么吗?注:seedVal从4开始

使用nextInt()键入两条语句以打印两个随机整数 在0到9之间。以换行结束。例:

五,

七,

注意:对于此活动,使用一条语句可能会产生不同的结果 输出(由于编译器以不同的顺序调用nextInt())。 此活动使用两个语句

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;
   }
}