java随机数的产生
2009-05-19 10:47 cesc711 阅读(465) 评论(0) 编辑 收藏 举报 昨天在写程序的时候用random类来产生随机数,但是发现每次产生出的随机数都是一样的,为此困惑不已。后来在网上查了查,发现是配置文件里面所配置的seed造成的,每次都用一个seed,产生的随机数当然就一样了。
下面很简单的总结一下java中产生随机数的几个方法,当然也是网上看到的:
1.用System.currentTimeMillis()获取一个当前时间毫秒的long型数字。
2.用Math.random()返回一个0到1之间的double值。
3.通过Random类来产生一个随机数。
Random类里面有产生各种不同类型随机数的方法,我这里就不一一介绍了。我只说说Random类的简单使用。
Random类的实例用于产生伪随机数流。此类使用48为的种子,利用线性同余公式对其进行修改。如果用相同的种子创建两个Random实例,则对每个实例进行相同的方法调用序列,它们将产生并返回相同的数字序列。
创建带种子的Random类的的实例对象:
Random random1 = new Random(711L);
Random random2 = new Random();
random.setseed(777L);
Random random2 = new Random();
random.setseed(777L);
创建不带种子的Random类的实例对象:
Random random = new Random();