首页 > 后端开发 > C++ > 为什么'rand() % 14”在 Apple 的 MCG 上返回有限值?

为什么'rand() % 14”在 Apple 的 MCG 上返回有限值?

Mary-Kate Olsen
发布: 2024-11-28 00:20:10
原创
635 人浏览过

Why Does `rand() % 14` Return Limited Values on Apple's MCG?

Rand() % 14 生成器返回有限值

在最近的程序中,开发人员遇到了 rand() % 14 的问题表达式始终只生成 6 或 13 的值。尽管尝试多次执行代码,结果仍然保持一致。问题在于 Apple 的 MCG 使用的随机数生成器的性质。

根据维基百科的解释,MCG 的乘数 16807 可以被 7 整除。这意味着 srand() 之后生成的第一个随机数将当以 14 为模时,只有一位熵,导致值的范围有限。此缺陷归因于 Apple 使用的低质量随机数生成器。

解决此问题的一个简单方法是在 srand() 之后多次调用 rand() 并丢弃初始结果。这将增强生成数字的熵并解决有限值输出的问题。

以上是为什么'rand() % 14”在 Apple 的 MCG 上返回有限值?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板