gpt4 book ai didi

java - 无偏随机整数生成器

转载 作者:行者123 更新时间:2023-12-01 07:09:30 27 4
gpt4 key购买 nike

阅读一些帖子后,我发现在 Java 中使用 Math.random() 生成整数在某种程度上是有偏差的。

我在这篇文章中遇到了一个算法:

Unbiased random number generator using a biased one

它生成一个介于 0 和 1 之间的无偏结果,我想将它用于我的程序。

但是,我正在尝试在 Java 中创建一个介于 0 和某个值(例如 7)之间的无偏生成器,但我不太确定该算法是否适用于一定范围的数字。

如果没有,我必须做什么才能创建我想要的无偏整数生成器?

最佳答案

您需要引用声称 Java Math.random() 有偏见的引用文献,以及到底以何种方式存在偏见。这将是一个大问题,因为这是 Java 标准库的非常核心的部分。

Java提供SecureRandom这更适合加密强度的随机数生成。要使用它生成 0 到 N 之间的数字,您可以使用 Random.nextInt(int) documentation 中提供的相同算法。但用 SecureRandom 代替。

不要实现你自己的随机数生成器算法,除非你愿意不辞辛劳地证明它比现有的算法更好。创建高质量的算法非常困难,而且很可能会让问题变得更糟。

关于java - 无偏随机整数生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17175573/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com