【青鸟飞扬教育】Java Random 分析

【青鸟飞扬教育】Java Random 分析

简介

打开 Random 类的源代码,在类注释中可以看到如下说明:

此类的实例用于生成伪随机数流。此类使用 48 位的种子,使用线性同余公式 (linear congruential form) 对其进行了修改(请参阅 Donald Knuth 的 The Art of Computer Programming, Volume 3,第 3.2.1 节)。

如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。为了保证此属性的实现,为类 Random 指定了特定的算法。为了 Java 代码的完全可移植性,Java 实现必须让类 Random 使用此处所示的所有算法。但是允许 Random 类的子类使用其他算法,只要其符合所有方法的常规协定即可。

Random 类实现的算法使用一个 protected 实用工具方法,每次调用它最多可提供 32 个伪随机生成的位。

里面提到了线性同余公式,是个产生伪随机数的方法,下面会进行介绍,先看一下 Random 提供了哪些方法:

Random 方法介绍

int next (int bits):生成下一个伪随机数。

boolean nextBoolean ():返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 boolean 值。

void nextBytes (byte [] bytes):生成随机字节并将其置于用户提供的 byte 数组中。

double nextDouble ():返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 double 值。

float nextFloat ():返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布 float 值。

double nextGaussian ():返回下一个伪随机数,它是取自此随机数生成器序列的、呈高斯(“正态”)分布的 double 值,其平均值是 0.0 标准差是 1.0。

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

int nextInt (int n):返回一个伪随机数,它是取自此随机数生成器序列的、在(包括和指定值(不包括)之间均匀分布的 int 值。

long nextLong ():返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 long 值。

void setSeed (long seed):使用单个 long 种子设置此随机数生成器的种子。

通过上面的介绍,大致可以对 Random 做如下总结:

1.Random 是伪随机,既随机是有规则的,

2. 相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列,

3.Random 类中的各方法生成的随机数字都是均匀分布的。

特别声明:[【青鸟飞扬教育】Java Random 分析] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

电视上如何在线播放网盘视频?这个方法得学会(电视怎么在线)

它是个能在电视上用的播放器,最合我心意的是播放设置特丰富,画质、倍速啥的随便调,不用看会员脸色;操作也简单,完全不用跟遥控器死磕,对我这种怕麻烦的人太友好。其实不用在电视上费劲操作,手机上弄好就行,毕竟…

电视上如何在线播放网盘视频?这个方法得学会(电视怎么在线)

李嘉诚港口交易反转背后原因是什么 国家利益下的商业妥协(李嘉诚卖港口大反转)

巴拿马运河的波涛中,一纸公告改写了资本与国家博弈的结局。7月28日,香港长和集团发布公告称,与贝莱德财团的独家谈判期正式到期,但交易并未终止,而是迎来戏剧性转折——将邀请中国内地主要策略投资者加入收购财团

李嘉诚港口交易反转背后原因是什么 国家利益下的商业妥协(李嘉诚卖港口大反转)

吴宣仪这“魔鬼身材”,谁看了不说一句绝!

还有就是,别被“身材焦虑”压垮,吴宣仪的身材是努力的成果,但不是“唯一标准”,普通人也有普通人的美,健康、自信就是最美的,咱要学她的自律,更要爱自己的独特!美不只有一种样子,有人喜欢丰满性感,有人偏爱纤细精致…

吴宣仪这“魔鬼身材”,谁看了不说一句绝!

编织时代经纬与心灵诗篇(经纬编织图案)

它超越了单纯的物质存在,成为连接历史、文化与个体的奇妙纽带,以其独特魅力勾勒出人类文明的绚丽画卷。从智能穿戴设备与服装的结合,到可持续面料的广泛应用,西方时尚文化展现出了对未来的探索和对社会责任的担当。 在时…

编织时代经纬与心灵诗篇(经纬编织图案)

东契奇续约湖人 继续为洛杉矶争冠(东契奇续约湖人存变数)

北京时间8月3日,东契奇在个人社交媒体上晒出与湖人签约的照片。他提前签下了一份为期三年、价值1.65亿美元的合同,其中2028-2029赛季为球员选项

东契奇续约湖人 继续为洛杉矶争冠(东契奇续约湖人存变数)