Comment utiliser la fonction SRAND dans C ++

Comment utiliser la fonction SRAND dans C ++

Dans cet article, nous discuterons de la façon dont nous pouvons utiliser la fonction srand () en C ++ tout en écrivant des programmes dans Ubuntu 20.04. La fonction srand () est la graine que la fonction rand () utilise pour générer des nombres aléatoires. Ces deux fonctions sont définies dans l'en-tête stdlib. Comme nous utilisons la fonction srand () pour définir la graine dans la fonction rand (), elle est liée à la fonction rand (). La fonction srand () prend la valeur de la graine dans un type entier non signé. La valeur des semences est le point de départ de la génération de nombres aléatoires de la fonction rand (), par exemple, SRAND (5). Aucune valeur n'est renvoyée par la fonction srand (). La valeur de semence par défaut de la fonction SRAND est définie comme «1». Ainsi, si nous n'appelons pas la fonction srand () avant la fonction rand (), ce sera la même chose que l'écriture de "srand (1)".

Comprendre la relation entre Rand () et Srand () Fonction:

Lorsque nous utilisons la fonction rand () dans notre code, nous obtenons toujours le même nombre aléatoire chaque fois que nous le compilons. Voyons un exemple où nous allons mieux comprendre comment fonctionne la fonction Rand sans srand ().

Utilisation de la fonction rand () sans la fonction srand () dans Ubuntu 20.04:

Ouvrez le terminal et faites un .Fichier CPP en écrivant et en exécutant la commande «Touch» avec le nom de fichier et l'extension de .cpp. Ensuite, localisez et ouvrez votre .Fichier CPP. Maintenant, écrivez un code simple pour générer des nombres aléatoires sans utiliser la fonction srand ().

Le fichier doit être enregistré puis fermé. Ouvrez à nouveau le terminal et compilez le fichier avec cette commande «G ++» avec votre nom et votre extension de fichier. Cela générera une sortie pour votre fichier après la compilation, généralement avec l'extension de «.dehors."Exécutez maintenant le fichier de sortie en écrivant cette commande"./ ”Avec votre nom de fichier de sortie

Comme vous pouvez le voir dans l'exemple ci-dessus, les premières et secondes sorties sont les mêmes car nous n'avons pas utilisé la fonction srand (). Ainsi, même si nous répétons le processus plusieurs fois, la sortie sera la même car la valeur des semences est par défaut définie sur 1.

Nous examinerons comment la fonction rand () fonctionnera avec la fonction srand ().

Fonction Rand () avec l'utilisation de la fonction srand () dans Ubuntu 20.04:

Ouvrez le terminal et faites un .Fichier CPP en écrivant et en exécutant la commande «Touch» avec le nom de fichier et l'extension de .cpp. Ensuite, localisez et ouvrez votre .Fichier CPP. Nous allons maintenant écrire un code pour générer des nombres aléatoires et utiliser la fonction srand () avec différentes valeurs de semences.

Le fichier doit être enregistré puis fermé. Ouvrez à nouveau le terminal et compilez le fichier avec cette commande «G ++» avec votre nom et votre extension de fichier. Cela générera une sortie pour votre fichier après la compilation, généralement avec l'extension de «.dehors."Exécutez maintenant le fichier de sortie en écrivant cette commande"./ ”Avec votre nom de fichier de sortie.

Maintenant, nous pouvons voir que l'utilisation de la fonction srand () avec différentes valeurs de graines donne un nombre aléatoire différent. Donc, si nous continuons à modifier la valeur des semences qui est le paramètre de la fonction srand (), les nombres aléatoires seront toujours différents les uns des autres. La valeur des graines est définie comme «1» dans la première ligne de sortie, donc le nombre aléatoire généré par cette valeur de graine est 1804289383, et lorsque nous modifions la valeur des graines à 5, le nombre aléatoire généré est désormais changé en 590011675, donc ceci Le changement s'est produit en raison de la différence dans la valeur des semences.

Après avoir examiné cet exemple, nous pouvons conclure que la fonction rand () sans la fonction srand () ne fonctionne pas jusqu'à la norme du programme PRNG (Pseudo Random Number Generator), qui génère des nombres aléatoires conformément à l'accréditation de la valeur des semences, Dans la langue C ++. Ce programme comprend les fonctions rand () et srand () pour générer des nombres aléatoires dans la programmation C ++. Nous devons donc toujours utiliser la fonction srand () tout en utilisant la fonction rand () pour générer des nombres aléatoires distincts.

Le nombre srand () avec différentes valeurs de graines continue de modifier les nombres aléatoires générés, ce qui rend la fonction rand () plus efficace. Mais nous devons continuer à modifier la valeur des semences à chaque fois car la valeur des semences doit être donnée avant d'appeler la fonction rand (). Ainsi, la meilleure façon de continuer à le faire est d'utiliser la fonction de temps (0), ce qui donne le temps exact en secondes dans la forme entière non signée de la même manière que le paramètre de la fonction SRAND (). Ainsi, la sortie du temps (0) continuera toujours à changer, et donc la sortie de la fonction rand () continuera également à changer chaque seconde.

Utilisation de la fonction srand () avec le temps (0) comme paramètre:

Comme nous l'avons dit précédemment, la valeur des semences de la fonction est définie comme «1», nous devons donc modifier la valeur des semences constamment et avant que la fonction rand () ne soit appelée. Ces points sont essentiels pour l'efficacité de la génération de fonctions aléatoires, nous devons donc penser à une manière qui réduit également le processus de réflexion du codeur et la puissance de traitement de l'appareil. Ce problème est résolu par la fonction Time () dans la langue C ++, qui donne l'heure exacte au moment donné auquel vous exécutez la tâche de votre appareil, également connu sous le nom de temps. Donc, si nous ajoutons la fonction de temps (0) comme le paramètre de la fonction srand (), c'est-à-dire sa valeur de semence, elle donnera le temps total en secondes en tant qu'entier à la fonction srand () et continuera de changer à chaque le temps que nous l'utilisons. La fonction Time () est définie dans l'en-tête Ctime, nous devrons donc l'ajouter dans notre code. Nous allons maintenant l'implémenter cela sur notre code et essayer de mieux comprendre comment la fonction srand () fonctionne avec la fonction Time () comme paramètre.

Utilisation de la fonction srand () avec la fonction temporelle comme paramètre dans Ubuntu 20.04:

Ouvrez le terminal et faites un .Fichier CPP en écrivant et en exécutant la commande «Touch» avec le nom de fichier et l'extension de .cpp. Ensuite, localisez et ouvrez votre .Fichier CPP. Nous allons maintenant écrire un code pour générer des nombres aléatoires et utiliser la fonction Time () pour fournir différentes valeurs de graines pour des nombres générés de manière aléatoire.

Le fichier doit être enregistré puis fermé. Ouvrez à nouveau le terminal et compilez le fichier avec cette commande «G ++» avec votre nom et votre extension de fichier. Cela générera une sortie pour votre fichier après la compilation, généralement avec l'extension de «.dehors."Exécutez maintenant le fichier de sortie en écrivant cette commande"./ ”Avec votre nom de fichier de sortie

Comme nous pouvons le voir après l'exécution des fichiers plusieurs fois, le nombre aléatoire change à chaque exécution, nous avons donc atteint l'efficacité par cette méthode, et nous continuerons à obtenir des valeurs différentes chaque fois que nous exécutons la fonction SRAND () avec le temps ( 0) comme son paramètre.

Conclusion:

Dans cet article, nous avons appris la relation entre la fonction rand () et srand () et comment la fonction srand () aide la fonction rand () à générer des nombres aléatoires efficacement par l'utilisation de la fonction Time (). Nous avons mis en œuvre tous les exemples de ces concepts dans Ubuntu et avons donné une élaboration détaillée de pas sur la façon de les effectuer sur Ubuntu 20.04.