math - 为什么在 util Random 类中使用 48 位种子?

标签 math random java lcg

为什么这个类在其线性同余公式中使用 48 位种子? 我本来期望 32 或 64...

我知道当要求 32 位值时它需要更高阶位。但为什么只有 16 个附加位?这是一个“随机”选择吗?

最佳答案

您需要比输出位更多的状态位,因为 LCG 的性质是状态的低位位根本不是很随机。所以如果你想要 32 位输出,你需要超过 32 位的状态。

为什么使用 48 而不是 64?因为 48 就足够了,而且您是几十年前设计的,所以有充分的理由希望避免使用比绝对必要更多的资源。

关于math - 为什么在 util Random 类中使用 48 位种子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2213882/

相关文章:

c - 为结构体成员生成随机数

java - 按钮上的数字不同

java - 为什么这个递归函数会抛出 StackOverFlow 错误???这是我的二分搜索逻辑,其中的确切错误点在哪里

algorithm - 编译器和语言的选择会影响时间复杂度吗?

algorithm - 如何将一组数字分成两个子集,这些子集的元素数量相等,并且总和尽可能接近?

java - 定义简单的数学函数并评估结果

matlab - 使用 MATLAB 将对数螺旋图像的白色部分转换为散点图

c++ - 为什么人们说使用随机数生成器时存在模偏差?

java - 如何将 Spring Boot 应用程序正确连接到 Elasticsearch 6.1?

Process 类中的 Java 文件路径和 url