numéros générés aléatoirement ont de nombreux usages dans les programmes informatiques , tels que la création d' imprévisibilité dans les jeux , les simulations de modélisation et d'effectuer le chiffrement. Java fournit deux techniques de génération de nombres aléatoires . La bibliothèque de mathématiques propose une méthode simple , mais pratique , aléatoire pour générer une valeur à virgule flottante aléatoire compris entre 0 et 1,0 . La classe Random fournit des capacités de production de nombres aléatoires plus souples . Photos aléatoires générateurs de nombres sont utilisés dans la programmation de jeux de hasard . Photos, illustrations Basics Un générateur de nombres aléatoires est une routine conçue pour produire une valeur numérique qui semble choisie par hasard. En Java, comme avec tous les langages de programmation, les valeurs générées par Math.random () et la classe aléatoire apparaissent au hasard, mais ne sont pas réellement . Par conséquent, ces méthodes sont dit pour produire des nombres pseudo -aléatoires Propriétés générateurs de nombres pseudo-aléatoires ont deux propriétés fondamentales : . . Distribution et de graines La «distribution» se réfère à la fréquence à laquelle chaque valeur dans une série de numéros générés apparaît. La plupart des méthodes aléatoires de Java produire une distribution uniforme de numéros , ce qui signifie pas une valeur apparaît plus souvent que tout autre . La classe a une méthode aléatoire , nextGaussian , qui génère des numéros qui suivent une distribution gaussienne ( également «normal » ou « courbe en cloche »). La «semence» est un numéro utilisé pour initialiser un nombre pseudo -aléatoire génératrice. Compte tenu de la même graine , un générateur de nombres pseudo-aléatoires va produire une série identique de numéros en cas d'appel en utilisant les mêmes méthodes et les paramètres . La possibilité de reproduire un ensemble de nombres est utile pour le débogage , les tests et d'autres scénarios où recréer l'environnement en cours d'exécution d'une application est nécessaire. Math.random ( ) Math.random () est un générateur de nombre pseudo- aléatoire simple . Il est utilisé simplement en appelant Math.random ( ) . La méthode renvoie un double entre 0.0 (inclus) et 1.0 ( exclusive) . Les valeurs produites suivre une distribution uniforme. Si une gamme différente , le type ou la distribution sont nécessaires, le programmeur doit jeter les résultats sur le type désiré et effectuer des calculs supplémentaires pour générer le résultat souhaité. La classe aléatoire < p> La classe aléatoire est plus souple que Math.random (), mais nécessite un peu plus d'effort à utiliser. Une instance de la classe aléatoire est construit. Le constructeur aura un entier long que la valeur de départ , ou si une valeur de départ n'est pas fourni, il utilisera l'heure actuelle en millisecondes que la graine de défaut. La classe Random fournit une méthode de fixation des graines après la construction. Il existe plusieurs méthodes de génération de nombres pseudo - aléatoires dans cette classe , chacun précédé par le mot "suivant". La plupart de ces méthodes renvoient des valeurs uniformément réparties à travers différentes gammes et de différents types , tels que les entiers , les valeurs à virgule flottante et les valeurs booléennes. La méthode nextGaussian retourne doubles réparties gaussiennes. La méthode de nextInt peut prendre un paramètre entier qui définit l'extrémité supérieure de la fourchette. Considérations Génération d'un ensemble de nombres qui ne peuvent être prédits est parfois souhaitable , pour par exemple , pour empêcher les joueurs d'être en mesure de tricher dans les jeux. Les valeurs pseudo- aléatoires renvoyés par plusieurs instances de la classe aléatoires peuvent être combinés pour fournir aléatoire supplémentaire dans l'ensemble résultant . Mettre en œuvre une distribution non uniforme peut également être utile . Java génère des nombres pseudo -aléatoires qui suivent soit un uniforme ou de la distribution gaussienne. Distributions non uniformes sont utiles , en particulier dans les simulations pour imiter les scénarios qui sont conformes aux distributions spécifiques dans la réalité. D'autres distributions peuvent être obtenus en utilisant la fonction de répartition inverse de la distribution désirée. Cette fonction prend une probabilité ( une valeur comprise entre 0,0 et 1,0 exclusive) en tant que paramètre . Les résultats non nuls de chaque Math.random () ou l'une des méthodes de la classe aléatoire qui retourne une valeur en virgule flottante peuvent être utilisés pour ce paramètre. Voir la section Ressources pour un lien vers le Math Library Apache, qui fournit des méthodes inverses pour plusieurs distributions cumulatives .
|