Je suis un débutant en Java. Je sais que Java a une fonction de générateur de nombres aléatoires de Gaussian Distribution. Comme je l'ai appris d'une autre question, le générateur aléatoire intégré de Java n'est pas très bon car il ne prend pas la moyenne d'entrée et l'écart-type de la distribution gaussienne dont j'ai le plus besoin. Je travaille sur l'algorithme génétique. Pour les besoins de la mutation, je dois générer un nombre aléatoire à partir de la distribution gaussienne, de la distribution de Cauchy et de la distribution de Levy. La fonction de générateur doit prendre l'entrée Scale Parameter et Location Parameter de cette distribution. Comment puis-je faire ceci?Génération de nombre aléatoire de Cauchy
Répondre
Java ne possède pas ces intégrés. Vous devrez créer vos propres fonctions ou trouver une bibliothèque tierce.
CauchyDistribution du paquet org.apache.commons.math3.distribution ressemble à ce que vous voulez.
Java n'a pas ce truc intégré.
Si vous vous opposez à la jarfile bloat de ce paquet, vous devrez rouler le vôtre, similaire à this example for Gaussian.
Eventhough la question est un peu vieux, je vais essayer de répondre que je cherchais la même chose et il pourrait aider à la personne suivante:
Pour mettre en œuvre un RNG pour une distribution arbitraire que vous devez savoir ce qui suit :
- Générer des nombres uniformément réparties dans le [0,1) plage a pas de problème
- la dérivation d'un distributionfunction est la densité de distribution (par exemple, la courbe de Gauss Bell)
- le distributionfunctio n est (plus ou moins) 0 à -Infinity et 1 à Infinity. Entre ces extrêmes, il augmente de façon monotone.
Maintenant, vous devez utiliser ces choses (au moins 1. et 3.) de la manière suivante:
- Calculer la fonction de distribution (intégrant la densité)
- résoudre cette équation pour x
- Dans la fonction résultante, passez un nombre uniformément distribué en tant que paramètre pour obtenir des résultats distribués de façon appropriée.
Exemple:
distribution de Cauchy:
f (x) = 1/(x² + 1)/Pi
- fonction de distribution:
y = F (x) = arctan (x)/Pi + 0.5 (il faut ajouter 0.5 pour obtenir une fonction R -> [0,1]
- résoudre pour x
x = g (y) = tan (y-0.5) * Pi (G est l'inverse de F - habituellement F^(- 1)
Maintenant, il suffit de mettre un double généré en tant que Y dans la fonction:
retour Math.tan (rand.nextDouble() -0,5) * Math.PI.;
pour l'échelle et l'emplacement des paramètres que vous suffit de procéder comme suit:
X est votre gaussienne (ce qui signifie: N (0,1)) distribués variable stochastique
Mean (a * X + b) = a * moyenne (X) + b Var (a * X + b) = a² * Var (X)
un est votre paramètre d'échelle, b est votre position paramètre. Générez donc une variable distribuée gaussienne standard et multipliez par sqrt (échelle) et ajoutez le paramètre d'emplacement.
- 1. génération de nombre aléatoire
- 2. Génération de nombre aléatoire Cuda
- 3. Génération de nombre aléatoire - C sur ARM7
- 4. Génération de sudoku aléatoire
- 5. C++ Génération d'un 4 chiffres nombre aléatoire
- 6. Génération de pseudo-nombre
- 7. Génération de nombre aléatoire avec Well44497a en C++
- 8. Génération de chaîne aléatoire Jython
- 9. Nombre aléatoire en octave
- 10. La génération d'un nombre aléatoire renvoie [email protected]
- 11. Génération 9 chiffres nombre aléatoire y compris le premier zéro
- 12. Algorithme Nombre aléatoire
- 13. Nombre aléatoire de cercles
- 14. Nombre aléatoire de tests
- 15. génération aléatoire dans la liste de FSharp
- 16. Génération d'un nombre réel aléatoire et uniformément distribué en C
- 17. Génération aléatoire d'opérations associatives
- 18. génération d'URL pseudo-aléatoire
- 19. Génération aléatoire ASCII
- 20. Génération aléatoire de chaînes de 6 caractères
- 21. Génération de mot de passe aléatoire
- 22. .NET Génération aléatoire - graine automatique
- 23. Génération de vecteur de nombre aléatoire (de taille M) de -K à K en C++
- 24. Nombre aléatoire
- 25. Perl - PHP: génération de chaîne aléatoire
- 26. génération de permutation multiset aléatoire avec restrictions
- 27. Génération de population aléatoire entre les limites
- 28. coordonnées de génération aléatoire dans un cercle
- 29. Génération aléatoire de phrases en JavaScript
- 30. Génération de bruit aléatoire dans matlab