黑马程序员技术交流社区
标题:
一个随机数的问题
[打印本页]
作者:
崔自成
时间:
2013-5-1 03:10
标题:
一个随机数的问题
本帖最后由 崔自成 于 2013-5-2 00:39 编辑
import java.util.*;
class TestRandom
{
private Random rand = new Random(47);
private int num = rand.nextInt(20);
public static void main(String[] args)
{
TestRandom tr = new TestRandom();
System.out.println(tr.num);
TestRandom tr2 = new TestRandom();
System.out.println(tr2.num);
TestRandom tr3 = new TestRandom();
System.out.println(tr3.num);
}
}
复制代码
为什么三个打印结果都为 18?而且重新编译运行结果一样。
作者:
丘凤光
时间:
2013-5-1 08:28
楼主,我用你代码运行了,结果都是随机的 啊
——
QQ截图20130501082714.jpg
(69.45 KB, 下载次数: 0)
下载附件
2013-5-1 08:27 上传
显然楼主人品碉堡了,居然每次都都能出同样的,可以看彩票去了{:soso_e113:}
作者:
王军行
时间:
2013-5-1 08:30
private Random rand = new Random(47);
就是这句的问题,空构造函数的种子每次运行都是不一样的,一初始种子确定了那么按照他的算法计算出来的值也就固定了,
查源代码理解的空构造函数是
public Random() {
this(seedUniquifier() ^ System.nanoTime());
}
一旦你指定了种子生成的数就是固定的了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2