【青鸟飞扬教育】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 分析] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

南通一日游攻略|citywalk必打卡!吃喝玩乐全安排(南通一日游攻略自由行)

想在南通玩一天却不知道从哪开始?这份超实用一日游攻略来啦!涵盖热门景点如濠河风景区、南通博物苑、狼山国家森林公园,还有本地人私藏的美食打卡地。从清晨漫步到傍晚夜市,全程不踩雷,适合周末放松、亲子出游或情侣约会。路线清晰+交通提示+避坑指南一

南通一日游攻略|citywalk必打卡!吃喝玩乐全安排(南通一日游攻略自由行)

卢靖姗晒二胎孕肚写真曲线毕露,与丈夫韩庚常年“分房睡”(卢靖姗火了)

就在前几天,她还晒出健身照,虽然孕肚已经很明显,但四肢依旧纤细。她引用专家观点说,保证睡眠质量其实对婚姻更有利,关键是要在睡前和醒后保持亲密互动。有人根据孕肚形状推测可能是男孩,如果成真,这对夫妻就实现"儿女…

卢靖姗晒二胎孕肚写真曲线毕露,与丈夫韩庚常年“分房睡”(卢靖姗火了)

决定了!『郭德纲』终于官宣了『德云社』继承人,王惠是打得一手好算盘!(郭德刚定场)

最近『德云社』新综艺里爆出人意料的一幕——『郭德纲』当场挥毫写下"『德云社』下任掌门人"六个大字,站在一旁的于谦立刻会意,这是要公开宣布接班人选。王惠的亲生子郭汾阳,这个被『郭德纲』在微博称为"郭二爷&

决定了!『郭德纲』终于官宣了『德云社』继承人,王惠是打得一手好算盘!(郭德刚定场)

他出道15年无戏可拍,结婚10年生4个娃,如今被陈佩斯带火(他出道十年,高冷禁欲,从无绯闻,『娱乐圈』️头条新闻)

他不仅从未利用父亲的名气谋取便利,甚至在早期工作中刻意回避与陈佩斯的父子关系。值得一提的是,陈大愚最初并未立志成为演员,而是在大学毕业后才发现对戏剧的热爱,即便如此,他也从未要求父亲提供特殊帮助。十五年的坚持…

他出道15年无戏可拍,结婚10年生4个娃,如今被陈佩斯带火(他出道十年,高冷禁欲,从无绯闻,『娱乐圈』️头条新闻)

甲亢的治疗方法有什么(甲亢的治疗方法及利弊)

甲亢的治疗方法包括抗甲状腺药物、放射性碘治疗、手术治疗、生活方式调整以及中医调理。甲亢由甲状腺激素分泌过多引起,常见症状有心悸、多汗和体重下降。 抗甲状腺药物是治疗甲亢的常用方法,通过抑制甲状腺激素的合成来发挥作用

甲亢的治疗方法有什么(甲亢的治疗方法及利弊)