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

时间:2016-02-04 21:38:28

标签: java random numbers generator

我试图让它在不同的行上打印出2和2。第一部分单独的线路已经关闭,但由于某种原因,这个东西输出的数字是2然后是3.这是为了我的一个章节的任务,并且由于我的工作时间表,让一个小组一起寻求帮助是具有挑战性的。谁能帮我理解这里发生了什么?注意:seedVal从4开始。

  

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

     

5

     

7

     

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

import java.util.Scanner;
import java.util.Random;

public class DiceRoll {
    public static void main (String [] args) {
        Random randGen = new Random();
        int seedVal = 0;
        randGen.setSeed(seedVal);

        System.out.println(randGen.nextInt(seedVal));

        System.out.println(randGen.nextInt(seedVal));

        return;
   }
}

2 个答案:

答案 0 :(得分:0)

new Random()确实是一个伪随机数,每次使用时都会以相同的顺序为相同的种子返回相同的值。 下限为零,因此您需要在结果中添加1,因为您不能使用骰子抛出0。上限为6(在0和5之间返回一个随机值,但我们重新加1以补偿0下限)。 要将相同的结果打印两次,您需要将其存储在变量中并将其打印两次。 幸运的是,第一个'随机'返回的种子6和绑定6的组合是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;
   }
}

答案 1 :(得分:0)

randGen.nextInt(10)表示从0开始的可能值的数量,因此最大值为9.由于提示需要2个语句,因此需要将打印输出两次。

的System.out.println(randGen.nextInt(10)); 的System.out.println(randGen.nextInt(10));