Нужен быстрый генератор бета-распределения Java случайных чисел - PullRequest
4 голосов
/ 13 февраля 2010

Мне нужно генерировать случайные числа, которые имеют бета-распределение в некотором критическом по скорости коде. В настоящее время я использую класс BetaRandomVariable () из библиотеки numerics4j, но в настоящее время он составляет около 95% использования ЦП моего кода!

Кто-нибудь может порекомендовать более быстрый способ генерации этих случайных чисел?

Ответы [ 2 ]

2 голосов
/ 13 февраля 2010

Более быстрая Java-реализация алгоритма Мерсенна Твистера, которую я нашел полезным в ряде приложений, доступна здесь: http://www.cs.gmu.edu/~sean/research/

2 голосов
/ 13 февраля 2010

Вы можете посмотреть на NumPy генераторы случайных чисел . Они находятся на C, но код относительно читабелен и лицензирован, поэтому их легко переносить на Java. Вам не нужно переносить базовый генератор Mersenne Twister, поскольку в стандартной библиотеке Java он есть, только код, который принимает числа из Mersenne Twister и преобразует его в бета-версию. Я перенес большинство генераторов случайных чисел NumPy на D и нашел их очень эффективными, и вы, вероятно, найдете то же самое в Java.

...