我需要在一些速度关键代码中生成具有 beta 分布的随机数。目前我正在使用 numerics4j 库中的 BetaRandomVariable() 类 - 但目前占我代码 CPU 使用率的大约 95%!
谁能推荐一种更快的方法来生成这些随机数?
最佳答案
你可以看看NumPy random number generators .它们是用 C 语言编写的,但代码相对可读性强且获得了许可,因此可以轻松地将它们移植到 Java 中。您不需要移植基本的 Mersenne Twister 生成器,因为 Java 在其标准库中有一个,只需要从 Mersenne Twister 获取数字并将其转换为 beta 分布的代码。我已将大部分 NumPy 随机数生成器移植到 D 并发现它们非常高效,您可能会在 Java 中发现同样的情况。
关于java - 需要一个快速的 Java beta 分布随机数生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2255909/