A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 崔自成 于 2013-4-21 20:22 编辑

public Random(long seed)   API里说 这个long类型的参数是种子,该种子是伪随机数生成器的内部状态的初始值。这个怎么理解,平时会用到这个构造方法来创建对象么?我有时会看到书里或其他地方 这样写 new Random(47),但是我写48,49写完全可以,希望知道的兄弟解释的详细点。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

2 个回复

倒序浏览
1.知道什么叫随机种子吗?
先回答你这个问题 :一般计算机的随机数都是伪随机数,以一个真随机数(种子)作为初始条件,然后用一定的算法不停迭代产生随机数。
计算机产生的数子严格来说都不是随机的。都能发现规律的

2.public Random(long seed)
平时当然有可能用来创建对象


Random rand = new Random(10);
rand.nextInt(10);表示从rand到10
Java产生随机数需要有一个基值seed
带种子的,每次运行生成的结果都是一样的。

你可以调试两次Random(47)看看结果

在进行随机时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字。

    a、public Random()
该构造方法使用一个和当前系统时间对应的相对时间有关的数字作为种子数,然后使用这个种子数构造Random对象。
         b、public Random(long seed)
该构造方法可以通过制定一个种子数进行创建。

无论你用哪种方法建立对象都可以的,一种可以用来固定,一种固定不了

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
如果问题未解决,请继续追问,如果问题解决了,请将问题分类改为“已解决”,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马