当前位置:首页 > Java技术 > java范围随机数

java范围随机数

2022年08月06日 19:37:09Java技术8

我们经常说Java中的随机数是伪随机数,那么我们要知道什么是伪随机数。

什么是伪随机数?

1、真正意义上的随机数在某次产生过程中是按照实验过程中表现的分布概率随机产生的,其结果是不可预测的,是不可见的。这才是真随机。

2、计算机中的随机函数是按照确定算法模拟产生的,其结果是确定的,是可见的,我们可以这样认为这个可预见的结果其出现的概率是100%,所以被称为伪随机。

Java随机数产生原理:

Java的随机数产生用了线性同余公式等,也就是说通过一个复杂的算法生成的。如果感兴趣,可以去看一下这篇对java随机数源码解析的博客。http://www.codes51.com/article/detail_1581162_5.html

Java产生随机数的方法有两种:

1、Math.random()

2、new Random()

java.lang.Math.Random:

Math.Random()函数能够返回0-1之间的double值,在该范围内(近似)均匀分布。

java.util.Random:

Random()有两种构造方法:

1、Random():使用一个和当前时间的毫秒数作为种子,可以通过System.currentTimeMillis()来获得当前时间的毫秒数。下面是JDK的源代码。

public Random() { this(System.currentTimeMillis()); }。

2、 Random(long seed):直接传入一个种子,如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。

random对象的nextInt(),nextInt(int n)方法:

int nextInt()

返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。

int nextInt(int n)

返回一个伪随机数,它是从此随机数生成器的序列中取出的、在 [0,1) 之间均匀分布的 int值。

下面是带种子不带种子两种构造方法生成[1,100]的随机数的代码:

1 //生成[1,100]的随机数

2 classrandom_test{3 public static voidmain(String[] args){4 Random r = newRandom();5 System.out.println("不带种子:");6 for(int i = 1; i <= 10; i++){7 System.out.print(r.nextInt(100)+1+" ");8 }9 System.out.println();10

11 System.out.println("带种子:");12 r = new Random(100);13 for(int i = 1; i <= 10; i++){14 System.out.print(r.nextInt(100)+1+" ");15 }16 System.out.println();17 }18 }

以下是运行两次的结果,结果很清晰,带种子的生成的结果是相同的:

java范围随机数 _ JavaClub全栈架构师技术笔记

由于nextInt(100)是生成 [0,100) 的随机数,但我们要生成 [1,100] 的,所以nextInt(100)+1;

要生成[22,99]的随机数,则nextInt(78)+22。

作者:极客有车
来源链接:https://blog.csdn.net/weixin_36187176/article/details/114041354

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/18231.html

标签: Java随机数
分享给朋友:

“java范围随机数” 的相关文章

java生成随机数

/** * 生成20位的随机数,用系统当前时间的毫秒数(13)+七位随机数 * @return */ public String generateStr() { StringBuffer v...

Java随机数Random

记录一个比较操蛋的问题 1、随机数是由随机种子根据一定的计算方法计算出来的结果。只要计算方法一定,随机种子一定,那么计算出来的结果就相同。 2、如果你每次调用srand()时都提供相同的种子值,那么,你将会得到相同的随机数序列 3、Rand...

java产生随机数的方法

一.在j2se里我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他就是个100以内的随机,这个在j2me中没有。 二.在java.util这个包里面提供了一个...

利用java随机数模拟求π的值

利用java随机数模拟求π的值

我们从小学的时候就已经熟知了π的值是介于3.1415926到3.1415927之间的一个无限不循环小数,今天我们就来利用java中的Math.random()这个随机数产生器来计算π的值,产生的数值范围为0~1。 用随机数来计算π的值可能...

Java 中随机数获取的方案

Java 中随机数获取的方案

一、方法 1、(数据类型)(最小值+Math.random()*(最大值-最小值+1)) 例:(int)(1+Math.random()*(10-1+1)) 从1到10的int型随数 package com; public class test2 {...

java的random生成某个范围内的随机数

random,java,生成范围内的随机数,随机数 import java.util.Random; /** * @author HP * @date 2019/4/16 */ public class randomTest { public...

Java获取随机数

方法1 (数据类型)(最小值+Math.random()*(最大值-最小值+1)) 例: (int)(1+Math.random()*(10-1+1)) 从1到1...

java中自定义随机数据

要生成自定义随机数1或-1,您需要使用nextBoolean()。首先,循环并在每次迭代中创建一个Random对象-for (int i = 0; i  Random rand =&...

Java 随机数

Java 随机数

Java 随机数   本章先讲解Java随机数的几种产生方式,然后通过示例对其进行演示。 广义上讲,Java中的随机数的有三种产生方式: (01). 通过System.currentTimeMillis(...

Java 高斯分布随机数

Java 高斯分布随机数

Java 高斯分布随机数 觉得有用的话,欢迎一起讨论相互学习~ 用Random类中的nextGaussian()方法,可以产生标准正态分布的随机数,其中均值为0,方差为1. 而对于 N ( a , σ 2...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。