关于随机数发生器

时间:2011-06-05 16:55:49

标签: random numbers

假设我想要一个随机数我执行“import java.util.Random;”和

int num = generator.nextInt(6) + 1; 
public void display1() {
    System.out.println("Number is: " + num);

}

//编辑这是显示代码。

public void display() {
    System.out.println("Number is: " + num);

}

当我运行java程序时,它会给出一个随机数。

但这是问题所在: 当我从另一个班级打电话时,让我们说:

for (int i = 0; i < 5; i++) {
        pList[i].display();

}

当我运行此代码时,它将输出

Number is: 6 //if 6 is the random number.
Number is: 6
Number is: 6
Number is: 6
Number is: 6 //instead of output of 5 different numbers.

所以我的问题是,无论如何都要解决这个问题?它应该有5个不同的数字。示例:

Number is: 6 
Number is: 3
Number is: 2
Number is: 5
Number is: 1

2 个答案:

答案 0 :(得分:1)

编辑:我真的不明白你的课程是如何构建的,但是:

在尝试猜测之后,我最好的建议是使用种子generator = new Random(System.currentTimeMillis());初始化您的生成器,然后为num分配一个新的随机值。

或者在使用与之前相同的参数为setSeed(long seed)分配值之前使用num。那就是:generator.setSeed(System.currentTimeMillis());

这样你应该得到随机数字。

答案 1 :(得分:0)

如果你不使用'display()'方法,而是使用'nextInt()'方法,它可以很好地工作。试试这个:

public static void main (String [] args) {
        Random generator = new Random ();
        for (int i = 0; i < 5; i++) {
            System.out.println(generator.nextInt(6) + 1); 
        }
    }
祝你好运!

编辑(现在有一个功能):

import java.util.*;

public class test {
    public static void main (String [] args) {
        random (1000);
    }

    private static void random (int n) {
        Random generator = new Random ();
        for (int i = 0; i < n; i++) {
            System.out.println(generator.nextInt(6) + 1); 
        }
    }
}

完美的作品,那么难吗? (您可能还想阅读http://download.oracle.com/javase/1.4.2/docs/api/java/util/Random.html。所有关于随机数的信息。)