0

0

Java Random类里的种子问题怎么解决

王林

王林

发布时间:2023-05-03 19:37:04

|

2190人浏览过

|

来源于亿速云

转载

可以说在现在的计算机语言里面,以及普通用户这里,都是没有办法获得真正的 随机数的。真正的随机数现在也只有在量子计算机当中才有获得。

所以我们现在所说的随机数,也可以称为伪随机数,伪随机数是通过一种算法并且结合当下一个有规律其不断改变的数(比如时间)获得的结果。

我们将这种通过算法集合时间作为初始获得随机数的基准的数据称为种子。

Java当中创建随机数的方式是有两种的:

第以种就是直接创建Random对象

立即学习Java免费学习笔记(深入)”;

Random random = new Random();

在底层就会调用这个方法来得到种子:

Java Random类里的种子问题怎么解决

第二种就是将自己创建的种子传进去:

Random random = new Random(5);

Java Random类里的种子问题怎么解决

有道智云AI开放平台
有道智云AI开放平台

有道智云AI开放平台

下载

在源码里我们可以直接看出种子的数据类型为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");
        }
    }
}

Java Random类里的种子问题怎么解决

在这明显的看出,这个随机数是一点都不随机的。两次只要种子一样,就能返回相同的结果。

在这我再用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类里的种子问题怎么解决

相关文章

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

7

2025.12.31

php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

4

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

7

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

7

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

42

2025.12.31

html5怎么播放视频
html5怎么播放视频

想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

4

2025.12.31

关闭win10系统自动更新教程大全
关闭win10系统自动更新教程大全

本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

3

2025.12.31

阻止电脑自动安装软件教程
阻止电脑自动安装软件教程

本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

3

2025.12.31

html5怎么使用
html5怎么使用

想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

2

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Kotlin 教程
Kotlin 教程

共23课时 | 2.1万人学习

C# 教程
C# 教程

共94课时 | 5.7万人学习

Java 教程
Java 教程

共578课时 | 40.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号