Question

Y at-il un algorithme passe unique qui peut produire des chiffres répartis sur partie d'une distribution normale (gaussienne)?

Je veux spécifier une valeur de base (le centre de la distribution), un écart-type, et un valeurs min et max.

Par exemple je pourrais vouloir toutes les valeurs à répartir entre -0,5 et +1 écarts types dans le même rapport que l'on trouverait dans une distribution normale (évidemment augmentée pour tenir compte des queues manquantes).

Il est évident que l'on peut utiliser une boucle et la sortie que si le nombre généré était entre le minimum et le maximum, mais qui pourrait se poursuivre pendant une longue période si min / max sont trop rapprochés ou trop loin le long d'une queue.

Je suppose une langue avec une gaussienne de nombres aléatoires (j'utilise Java, mais peut lire presque tout).

Était-ce utile?

La solution

Vous pouvez calculer erf pour la gaussienne donnée aux points minimum et maximum d'intérêt, générer le nombre aléatoire (uniformément) entre ces deux valeurs, et prendre erf inverse.

Je sais que la bibliothèque Apache a une fonction erf en Java, voir ici , mais je ne suis pas sûr où vous point pour l'inverse de erf (pire des cas, bien sûr, vous pouvez calculer cette dernière avec Newton-Raphson).

(j'ai trouvé un algorithme pour inverse erf , avec la mise en œuvre Java , mais ne peut pas se porter garant de sa qualité).

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