需要一个快速的 Java beta 分发随机数生成器
Posted
技术标签:
【中文标题】需要一个快速的 Java beta 分发随机数生成器【英文标题】:Need a fast Java beta distribution random number generator 【发布时间】:2011-01-16 09:19:04 【问题描述】:我需要在某些速度关键代码中生成具有 beta 分布的随机数。目前我正在使用 numerics4j 库中的 BetaRandomVariable() 类 - 但目前占我代码 CPU 使用率的 95%!
谁能推荐一种更快的方法来生成这些随机数?
【问题讨论】:
【参考方案1】:您可以查看NumPy random number generators。它们用 C 语言编写,但代码相对易读且许可许可,因此可以轻松地将它们移植到 Java。您不需要移植基本的 Mersenne Twister 生成器,因为 Java 在其标准库中有一个,只需要从 Mersenne Twister 中获取数字并将其转换为 beta 发行版的代码。我已将大部分 NumPy 随机数生成器移植到 D 中,发现它们非常高效,您可能会在 Java 中找到相同的结果。
【讨论】:
【参考方案2】:我发现在许多应用程序中有用的 Mersenne Twister 算法的更快 Java 实现可从此处获得:http://www.cs.gmu.edu/~sean/research/
【讨论】:
以上是关于需要一个快速的 Java beta 分发随机数生成器的主要内容,如果未能解决你的问题,请参考以下文章
使用 Xcode 的 beta 版本为 App Store 分发