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

时间:2010-02-13 00:05:39

标签: java statistics random beta-distribution

我需要在某些速度关键代码中生成具有beta分布的随机数。目前我正在使用numerics4j库中的BetaRandomVariable()类 - 但目前占我代码CPU使用率的95%左右!

有人可以推荐更快的方法来生成这些随机数吗?

2 个答案:

答案 0 :(得分:2)

您可以查看NumPy random number generators。它们在C语言中,但代码相对可读且允许许可,因此可以轻松地将它们移植到Java。您不需要移植基本的Mersenne Twister生成器,因为Java在其标准库中有一个,只有从Mersenne Twister获取数字并将其转换为beta分布的代码。我已将大部分NumPy随机数生成器移植到D并发现它们非常高效,您可能会在Java中找到它们。

答案 1 :(得分:2)

我在许多应用程序中发现了Mersenne Twister算法的更快Java实现,可以从这里获得:http://www.cs.gmu.edu/~sean/research/