java - 需要一个快速的 Java beta 分布随机数生成器

标签 java statistics random beta-distribution

我需要在一些速度关键代码中生成具有 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/

相关文章:

algorithm - 多维空间的归一化,这是什么算法?

bash - 我如何使用 Bash 从字符串/数组中选择一个随机字符?

java - 当可以使用 SecureRandom 类时,为什么还要使用 Java 的 Random 类?

linux - Java 运行时环境中的致命 SIGSEGV 错误

java - JAVA 中如何从 ResultSet 或 ResultSetMetaData 对象中获取数据库表的主键列名?

python - 使用来自 FLD 的最高特征值为 2D 数据投影多个集群

ios - 基于另一个 String iOS 生成一个唯一的数字字符串

java.io.File contains() 有时返回不正确的结果

c# - 您可以在 Java 中通过引用传递吗?

iphone - 用于检测应用统计信息的 iOS 库