需要一个快速的 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 分发随机数生成器的主要内容,如果未能解决你的问题,请参考以下文章

如何分发 App 的 beta 版本而不是覆盖购买副本

使用 Boost 生成基于 Beta 分布的随机数

使用 Xcode 的 beta 版本为 App Store 分发

需要一个用于 C++ 的快速随机生成器 [关闭]

使用fpm 方便快速生成postgresql extension分发包

临时或分发到应用商店进行 Beta 测试?试飞