Need a fast Java beta distribution random number g

2019-05-07 13:02发布

I need to generate random numbers that have a beta distribution in some speed critical code. Currently I'm using the BetaRandomVariable() class from the numerics4j library - but currently represents about 95% of my code's CPU usage!

Can anyone recommend a faster way to generate these random numbers?

2条回答
霸刀☆藐视天下
2楼-- · 2019-05-07 13:36

You can look at the NumPy random number generators. They're in C, but the code is relatively readable and permissively licensed, so they can easily be ported to Java. You don't need to port the basic Mersenne Twister generator as Java has one in its standard library, only the code that takes numbers form the Mersenne Twister and converts it to a beta distribution. I've ported most of the NumPy random number generators to D and found them to be very efficient, and you'll probably find the same in Java.

查看更多
乱世女痞
3楼-- · 2019-05-07 14:02

A faster Java implementation of the Mersenne Twister algorithm which I have found useful in a number of applications is available from here: http://www.cs.gmu.edu/~sean/research/

查看更多
登录 后发表回答