java7 做什么_随机(Java 7)中的181783497276652981和8682522807148012是什么?

小编典典

这个数字是否只是被错误地复制到Java中?

是的,似乎是一个错字。

181783497276652981是否具有可接受的优点?

这可以使用本文提出的评估算法确定。但是“原始”数字的优点可能更高。

为什么选择8682522807148012?

似乎是随机的。编写代码时可能是System.nanoTime()的结果。

是否可以选择其他与这两个数字一样有效的数字?

并非每个数字都一样“好”。所以不行。

播种策略

JRE的不同版本和实现之间的默认播种模式有所不同。

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

public Random() { this(++seedUniquifier + System.nanoTime()); }

public Random() { this(seedUniquifier() ^ System.nanoTime()); }

如果您连续创建多个RNG,则第一个不可接受。如果它们的创建时间在同一毫秒范围内,则它们将给出完全相同的序列。(相同的种子=>相同的序列)

第二个不是线程安全的。多个线程可以在同时初始化时获得相同的RNG。另外,后续初始化的种子倾向于相互关联。取决于系统的实际计时器分辨率,种子序列可能会线性增加(n,n

+ 1,n +

2,…)。如《随机种子需要有多少不同?以及参考论文伪随机数生成器初始化中的常见缺陷,相关种子可以在多个RNG的实际序列之间产生相关性。

第三种方法即使在线程和随后的初始化中,也会创建随机分布的种子,从而产生不相关的种子。因此,当前的Java文档:

该构造函数将随机数生成器的种子设置为一个很有可能与该构造函数的其他调用不同的值。

可以通过“跨线程”和“不相关”进行扩展

种子序列质量

但是,播种序列的随机性仅与基础RNG一样好。在此Java实现中,用于种子序列的RNG使用c = 0和m = 2 ^

64的乘法线性同余生成器(MLCG)。(模数2 ^ 64由64位长整数的溢出隐式给出)由于零c和2的幂,所以“质量”(循环长度,位相关性…)受到限制。

。如论文所述,除了整个周期长度外,每个位都有自己的周期长度,对于不重要的位,该长度呈指数下降。因此,低位具有较小的重复模式。(seedUniquifier()的结果应反转,然后在实际的RNG中被截断为48位)

但是速度很快!并且为了避免不必要的比较和设置循环,循环主体应该是快速的。这可能解释了此特定MLCG的用法,而无需添加,无需异或,只需一个乘法即可。

上面提到的论文给出了c = 0和m = 2 ^ 64的良好“乘数”列表,如1181783497276652981。

总而言之:A努力@ JRE-developers;)但是有一个错字。(但谁知道,除非有人对其进行评估,否则丢失的前导1实际上可能会改善播种RNG。)

但是某些乘数肯定更糟:“ 1”导致序列恒定。“ 2”导致单比特移动序列(以某种方式相关)…

RNG的序列间相关实际上与(Monte

Carlo)模拟有关,在该模拟中,多个随机序列被实例化甚至并行化。因此,良好的播种策略对于获得“独立”仿真运行是必要的。因此,C ++

11标准引入了用于生成不相关种子的种子序列的概念。

2020-12-03

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 、 1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READmE.文件(md如有),本项目仅用作交流学习参考,请切勿用于商业用途。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值