iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > Python >分析讲解Java Random类里的种子问题
  • 546
分享到

分析讲解Java Random类里的种子问题

2024-04-02 19:04:59 546人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

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

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

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

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

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类里的种子问题的文章就介绍到这了,更多相关Java Random类种子问题内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 分析讲解Java Random类里的种子问题

本文链接: https://www.lsjlt.com/news/148734.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 分析讲解Java Random类里的种子问题
    可以说在现在的计算机语言里面,以及普通用户这里,都是没有办法获得真正的 随机数的。真正的随机数现在也只有在量子计算机当中才有获得。 所以我们现在所说的随机数,也可以称为伪随机数,伪随...
    99+
    2024-04-02
  • Java Random类里的种子问题怎么解决
    本文小编为大家详细介绍“Java Random类里的种子问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java Random类里的种子问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来...
    99+
    2023-06-30
  • 分析Java中的类加载问题
    目录一、Java类的加载顺序二、类加载过程三、被动引用中和类静态初始化的关系四、类加载器双亲委派一、Java类的加载顺序 引用1个网上的经典例子,并做稍许改动,以便大家更好地理解。 ...
    99+
    2024-04-02
  • C语言动态规划多种背包问题分析讲解
    目录写在前面01背包问题完全背包问题多重背包问题 I多重背包问题 II为什么可以这样优化呢一 、二进制与十进制二 、动态规划的时间复杂度估算三 、多重背包分组背包问题写在前面 之前讲...
    99+
    2024-04-02
  • Java double类型相加问题举例分析
    本篇内容介绍了“Java double类型相加问题举例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Java double类型...
    99+
    2023-06-22
  • Java编程关于子类重写父类方法问题的理解
    子类重新实现父类的方法称重写;重写时可以修改访问权限修饰符和返回值,方法名和参数类型及个数都不可以修改;仅当返回值为类类型时,重写的方法才可以修改返回值类型,且必须是父类方法返回值的子类;要么就不修改,与父类返回值类型相同。那么,该如何理解...
    99+
    2023-05-30
    java 子类重写父类方法 ava
  • mysql详细分析讲解子查询的使用
    出现在其他语句中的 select 语句,称为子查询或内查询;外部的查询语句,称为主查询或 外查询 .  -- 子查询 -- 查询的条件来自于另一查询的结果 SEL...
    99+
    2024-04-02
  • Java类加载器ClassLoader源码层面分析讲解
    目录Launcher 源码AppClassLoader 源码ExtClassLoader 源码ClassLoader 源码总结最终总结一下Launcher 源码 sun.misc.L...
    99+
    2024-04-02
  • 分析和解决java.lang.OutOfMemoryError: Java heap space问题
    这里写目录标题 问题场景问题分析与解决1.优化项目代码2.提升Java heap size3.JVM参数配置配置参考堆区参数配置说明非堆区参数配置说明 问题场景 最近客户反馈在生...
    99+
    2023-10-24
    java jvm 开发语言 优化 内存
  • C++深入分析讲解类的知识点
    目录知识点引入类的初识1、封装2、权限3、类的定义(定义类型)4、类的成员函数与类中声明及类外定义Person类的设计设计立方体类点Point和圆Circle的关系知识点引入 C语言...
    99+
    2024-04-02
  • 解决JDBCConnectionReset的问题分析
    目录JDBC Connection Reset的问题分析现象分析问题定位TNS错误新线索随机数生成器总结JDBC Connection Reset的问题分析 半年前开始,项目组测试M...
    99+
    2023-05-18
    JDBC Connection Reset 解决JDBC Connection Reset JDBC Connection Reset问题
  • 解决lombok父类和子类builder不兼容的问题
    目录遇到的问题排查和解决结尾遇到的问题 在写代码时,有时因为需要定义一些重复的参数,为了复用之前传参的DTO,会对原有的类进行继承,从而达到避免重复代码的效果。 但是,当父类中使用了...
    99+
    2024-04-02
  • 29个CSS面试题的讲解与分析
    这篇文章给大家分享的是有关29个CSS面试题的讲解与分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。CSS是层叠样式表( Cascading Style Sheets )的缩写,是一种样式表语言,用于描述以 H...
    99+
    2023-06-14
  • Java中文问题的示例分析
    这篇文章将为大家详细讲解有关Java中文问题的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。我来说一下tomcat如何实现JSP的你就明白了。预备知识: 1.字节和unicode  Java内核是...
    99+
    2023-06-03
  • Java深入分析与解决Top-K问题
    目录题目解题方案方法一方法二方法三题目 求最小的K个数 设计一个算法,找出数组中最小的k个数。以任意顺序返回这k个数均可。 解题方案 方法一 排序(冒泡/选择) 思路 1,冒泡排序...
    99+
    2024-04-02
  • 怎么分析Mysql中的嵌套子查询问题
    小编今天带大家了解怎么分析Mysql中的嵌套子查询问题,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“怎么分析Mysql中的嵌套子查询...
    99+
    2023-06-29
  • Java语言中4种内部类的超详细讲解
    目录一.内部类的介绍二.内部类的种类2.1实例内部类      2.2.静态内部类2.3局部内部类2.4匿名内部类总结 一.内部类的...
    99+
    2023-05-17
    java内部类详解 内部类java正确使用 java内部类有哪些
  • Nginx 代理解决跨域问题多种情况分析
    何为跨域问题 跨域本人经过两天的磨练,大量地翻阅网上资料,通俗地讲,就是,同一ip,同一域名,不同端口下,需要互相访问,需要cookie的传递以及数据的获取。 一般在项目中,前后端完...
    99+
    2024-04-02
  • Java跨域问题分析与解决方法详解
    目录一、前言二、什么是跨域问题三、 为什么会出现跨域问题四、什么情况下会出现跨域五、如何解决跨域问题5.1 使用@CrossOrigin注解5.2 使用WebMvcConfigure...
    99+
    2023-05-20
    Java跨域问题原理 Java跨域问题解决方法 Java跨域问题
  • Java算法之最长公共子序列问题(LCS)实例分析
    本文实例讲述了Java算法之最长公共子序列问题(LCS)。分享给大家供大家参考,具体如下:问题描述:一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列X= { x1, x2,…, xm},则另一序列Z= {z1,...
    99+
    2023-05-30
    java 算法 最长公共子序列
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作