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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

public Random(long seed);
产生随机数,这里的种子具体是什么意思,给出后每次产生的随机数为什么都一样?

3 个回复

倒序浏览
这个问题很大了。。牵涉到随机数的产生原理,我简单说一下,如果想深究,楼主可以熊度一下
因为计算机的内存不是无限的,所以如果要产生真正的随机数(例如水面的波纹,自然的噪音等)是不具备这个条件的,早期的计算机学家设计了种子生成随机数这个算法,
例如,种子是11,那么后面进行一系列操作:将11平方,121平方,14641平方拼接,得到了1112114641214358881这样一串数字,那么计算机每次依次取一位,可以近似模拟出随机的效果
现代计算机性能越来越强大,随机数的算法已经不是像上面那么简单了,但是这个种子的思路依然在沿用
回复 使用道具 举报
给你举个例子:Random r=new Random(100);int a=r.nextInt();int b=r.nextInt();ab的值会不同,但是你运行两遍,ab的值不会发生改变,因为ab都是利用种子算出来的,每调用一次nextInt就算一次,重复调用值是一样的
回复 使用道具 举报
谢谢大家,终于知道了~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马