Java Random类里的种子问题怎么解决
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,本文小编为大家详细介绍"Java Random类里的种子问题怎么解决",内容详细,步骤清晰,细节处理妥当,希望这篇"Java Random类里的种子问题怎么解决"文章能帮助大家解决疑惑,下面跟着小编的
千家信息网最后更新 2025年11月07日Java Random类里的种子问题怎么解决
本文小编为大家详细介绍"Java Random类里的种子问题怎么解决",内容详细,步骤清晰,细节处理妥当,希望这篇"Java Random类里的种子问题怎么解决"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
可以说在现在的计算机语言里面,以及普通用户这里,都是没有办法获得真正的 随机数的。真正的随机数现在也只有在量子计算机当中才有获得。
所以我们现在所说的随机数,也可以称为伪随机数,伪随机数是通过一种算法并且结合当下一个有规律其不断改变的数(比如时间)获得的结果。
我们将这种通过算法集合时间作为初始获得随机数的基准的数据称为种子。
Java当中创建随机数的方式是有两种的:
第以种就是直接创建Random对象
Random random = new Random();
在底层就会调用这个方法来得到种子:
第二种就是将自己创建的种子传进去:
Random random = new Random(5);
在源码里我们可以直接看出种子的数据类型为long型,是长整形。
所以我们现在就有一种办法,在它最开始生成Random对象的时候,获得它生成的种子,然后将获得的种子又传入创建Random的对象当中。是不是就可以获得上面一模一样的随机数了?
先拿java语言来实现一下:
import java.util.Random;public class Demo02 { public static void main(String[] args) { Random random = new Random(5);//在这将5作为种子传入 System.out.println("第一次调用:"); for (int i = 0; i < 5; i++) { System.out.print(random.nextInt(10) + "\t"); //获得10以内的随机数(不包括10) } random.setSeed(5);//在这再将种子5传入Random的种子当中 System.out.println("\n第二次调用:"); for (int i = 0; i < 5; i++) { System.out.print(random.nextInt(10) + "\t"); } }}在这明显的看出,这个随机数是一点都不随机的。两次只要种子一样,就能返回相同的结果。
在这我再用python语言在实现一次这个功能(主要是java当中没有能调用输出当前种子的方法)。用python有一个更好的理解。
在python里面我会更加详细的写清注释,详细不会很难理解不了的。
import random #导入random内库x = random.getstate() # 获得当前random里的种子print('第一次循环:') #输入语句for i in range(5): #for循环 for i in range(5) ===》 for (int i = 0; i < 5; i++) #在python里面并没哟什么大括号去吧什么括起来,而是要注意锁定,一个锁定就是一个整体 print(random.randint(1, 10), end='\t') #random.randint(1, 10)生成1~10(不包括10)的随机数, # end='\t'表示当前print没有结束,还有一个制表符的键位,也就不换行了print('\n第二次循环')random.setstate(x)#将上面获得的种子再次传入进去for i in range(5): #这里和上面一样,循环出5次 print(random.randint(1, 10), end='\t')读到这里,这篇"Java Random类里的种子问题怎么解决"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
种子
随机数
循环
问题
对象
就是
文章
语言
生成
内容
办法
数据
方法
时间
第一次
算法
结果
计算机
妥当
明显
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全教育德育简报
上海常规软件开发厂家批发价
dhcp服务器 交换机
软件开发技术考试题库
万方数据库屏蔽多少本刊
教育部幼儿园网络安全
网络安全人才基地试点高校
太原大屏导航软件开发公司
娄底学数据库软件应用能力水平高
网络安全 国际合作
cnrsd数据库
软件开发方面的人才去哪里找
软件开发需要分析什么工具
软件开发与部署怎么检查
数据库管理课程介绍
协议服务器
lol美测服登录无法连接服务器
网站服务器学习
云服务器是怎么回事儿
网络安全主题班会ppt单张图片
跑团骰子买什么服务器
哪些属于万方智搜中的合作数据库
网络技术学电工电子技术
珍维互联网科技
简单易学的网络技术
福建省百万网络技术有限公司
检察网络安全防范
软件开发好 还是云计算
昆明服务器代理
来电秀显示服务器异常