Le C ++ générateur de nombre aléatoire

Générateurs de nombres aléatoires remplissent un certain nombre de fins. Tout, depuis les jeux de simulations nécessite un générateur de nombres aléatoires pour fonctionner correctement. Hasard trouve son chemin dans les affaires des scénarios de simulation ainsi. En bref, vous devez ajouter sortie aléatoire à votre application dans de nombreuses situations.

Création d'un nombre aléatoire est pas difficile. Tout ce que vous devez faire est d'appeler une fonction de nombre aléatoire comme indiqué dans le Générateur de nombres aléatoires exemple:

#comprendre main () {// Toujours fixer un value.srand de semences #include #include using namespace std-int ((unsigned int) time (NULL)) - int RandomValue = rand ()% 12-cout lt; lt; "Le nombre de mois est aléatoire:" lt; lt; RandomValue + 1 lt; lt; endl-retour 0-}

En fait, pas un des générateurs de nombres aléatoires dans la bibliothèque standard fonctionne correctement - imaginez que! Ils sont tous pseudo des générateurs de nombres: Les numéros sont distribués de telle sorte qu'il semble que vous voyez une séquence aléatoire, mais étant donné assez de temps et de patience, éventuellement, la séquence se répète.




En fait, si vous ne définissez pas une valeur de départ pour votre générateur de nombres aléatoires, vous pouvez obtenir des séquences prévisibles de numéros à chaque fois. Qu'est ce que c'est ennuyeux. Voici sortie typique de cet exemple:

Le numéro du mois est aléatoire: 7

La première ligne de code dans main () définit la semence en utilisant l'heure du système. Utilisation de l'heure du système assure un certain niveau de l'aléatoire dans la valeur de départ - et donc un niveau de hasard pour votre application dans son ensemble. Si vous commentez cette ligne de code, vous voyez la même sortie à chaque fois que vous exécutez l'application.

Les utilisations exemple d'application rand () pour créer de la valeur aléatoire. Lorsque vous prenez le module du nombre aléatoire, vous obtenez une sortie qui est dans une gamme spécifique - 12 dans ce cas. L'exemple se termine en ajoutant 1 au nombre aléatoire, car il n'y a pas un mois 0 dans le calendrier, puis émet le nombre de mois pour vous.

La bibliothèque standard donne accès à deux types de générateurs de nombres pseudo-aléatoires. Le premier type exige que vous définissez une valeur de départ. Le second type exige que vous fournissiez une valeur d'entrée à chaque appel et ne nécessite pas une valeur de départ. Chaque générateur émet un type de données différent, de sorte que vous pouvez choisir le type de numéro que vous obtenez.

Le tableau répertorie les générateurs de nombres aléatoires et vous dit quel type de données qu'ils de sortie.

Fonctions Pseudorandom Number Generator
FonctionLe type de sortieSemences nécessaires?
randentierOui
drand48doubleOui
erand48doublenon
lrand48longOui
nrand48longnon
mrand48signé à longOui
jrand48signé à longnon

Maintenant que vous savez sur le nombre pseudo-générateurs, regarder les fonctions de semences utilisées pour les premier. Le tableau suivant présente les fonctions de semences et de leurs fonctions de générateur de nombres pseudo-aléatoires associé.

Fonctions de semences
FonctionAssociated Pseudorandom Number Generator Fonction
srandrand
srand48drand48
seed48mrand48
lcong48lrand48

» » » » Le C ++ générateur de nombre aléatoire