Question

Je dois générer des nombres aléatoires qui ont une distribution bêta dans une certaine vitesse code critique. Actuellement, je suis en utilisant la classe de la bibliothèque numerics4j BetaRandomVariable () - mais représente actuellement environ 95% de l'utilisation du processeur de mon code

Quelqu'un peut-il recommander un moyen plus rapide pour générer ces nombres aléatoires?

Était-ce utile?

La solution

Vous pouvez consulter les numpy générateurs de nombres aléatoires . Ils sont en C, mais le code est relativement lisible et permissive sous licence, ils peuvent facilement être portés à Java. Vous n'avez pas besoin de porter le Mersenne de base générateur Twister que Java a un dans sa bibliothèque standard, seul le code qui prend les numéros forment le Mersenne Twister et il convertit à une distribution bêta. Je l'ai porté la plupart des générateurs de nombres aléatoires numpy à D et nous les avons trouvés très efficace, et vous trouverez probablement le même en Java.

Autres conseils

Une mise en œuvre plus rapide de Java de l'algorithme Mersenne Twister que j'ai trouvé utile dans un certain nombre d'applications est disponible ici: http://www.cs.gmu.edu/~sean/research/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top