Introduction au générateur de nombres aléatoires en C

Afin de générer la sortie attendue, le programme doit avoir besoin de l'entrée appropriée. Habituellement, les entrées sont fournies par l'utilisateur, mais parfois le programme doit choisir l'entrée par lui-même. Par exemple, pour obtenir l'horodatage actuel, l'application utilise une fonction intégrée pour la récupérer du système. De la même manière, nous avons parfois besoin que l'application génère un nombre aléatoire qui pourrait être traité davantage pour obtenir la sortie supposée. Bien qu'il semble aléatoire pour l'utilisateur, le langage de programmation nous offre le mécanisme pour définir la plage du nombre aléatoire. Dans cet article, nous verrons l'implémentation du programme de génération de nombres aléatoires à l'aide du langage de programmation C. Nous nous concentrerons sur la fonction intégrée fournie par C afin de générer un nombre aléatoire.

Quelles sont les fonctions du générateur de nombres aléatoires en C?

Il existe plusieurs approches pour générer le nombre aléatoire à l'aide de n'importe quel langage de programmation. On peut définir la fonction de sa propre façon d'estimer ou de générer le nombre aléatoire alors qu'il existe des fonctions intégrées dans n'importe quel langage de programmation qui génère le nombre aléatoire. Dans le langage de programmation C, nous avons une fonction appelée rand, qui aide à générer le nombre aléatoire. Cette fonction est prédéfinie en C et peut être implémentée dans le programme à l'aide du fichier d'en-tête stdlib.h. Le développeur doit mentionner le fichier d'en-tête stdlib.h au début du programme afin de tirer parti de la fonction rand. Chaque fois que cette fonction est appelée, elle génère un nombre totalement aléatoire. Sur la base de l'exigence, on peut générer le nombre appartient au type de données entier, flottant ou double. Il peut être simplement utilisé dans le programme en utilisant la fonction rand ().

Bien que la fonction rand soit censée générer la valeur aléatoire, elle a bloqué pour générer la même valeur chaque fois que le programme est exécuté et cela peut se produire en raison de la valeur de départ constante. Si l'exigence est d'avoir le nouveau nombre aléatoire généré chaque fois que le programme s'exécute, nous devons nous assurer que la graine doit changer chaque fois que le programme s'exécute. Le temps est quelque chose qui ne cesse de changer et peut également être considéré comme quelque chose qui peut aider à obtenir une valeur de départ aléatoire à chaque fois et à utiliser le temps dans le programme, nous devons utiliser le fichier d'en-tête time.h.

Entiers de génération

La fonction rand () est utilisée pour générer un nombre aléatoire. Chaque fois qu'il est appelé, il donne un nombre aléatoire. Si les développeurs y ajoutent de la logique, ils peuvent générer le nombre aléatoire dans une plage définie et si la plage n'est pas définie explicitement, elle renverra une valeur entière totalement aléatoire. La fonction rand () en C pourrait être utilisée afin de générer le nombre aléatoire et le nombre généré supprime totalement la graine. Une graine est la valeur utilisée par la fonction rand pour générer la valeur aléatoire. Si la valeur de départ continue de changer, le nombre généré sera nouveau à chaque fois que le programme est compilé, sinon il retournera la même valeur à chaque fois qu'il a été généré lorsque le programme a été exécuté en premier. Afin de générer le ci-dessous est le programme pour générer le nombre aléatoire entier.

Programme

#include
#include
#include
int main()
(
int rand_num;
srand(time(0));
printf("The randomly generated number is”);
rand_num = rand();
printf("%d\n", rand_num);
)
)

Production:

Le numéro généré aléatoirement est 1804289383.

Dans ce programme, nous avons utilisé le fichier d'en-tête time.h qui est utilisé pour exploiter l'heure système lors de la génération du nombre aléatoire. Comme l'heure change à chaque fois, la valeur de seed changera à chaque exécution du programme, nous aidant à générer un nombre aléatoire à chaque exécution du programme. Rand_num est la variable utilisée pour stocker un nombre généré de manière aléatoire. La fonction rand () génère un nombre aléatoire qui est affecté à la variable rand_num. Comme nous n'avons pas défini explicitement la valeur de retour du nombre aléatoire, cela nous donnera un nombre entier.

Génération de nombres à virgule flottante

L'approche pour générer la valeur flottante aléatoire est similaire à l'approche pour générer le nombre entier. La seule différence est que nous devrons définir explicitement que la valeur que nous attendons de la fonction rand doit être un flottant. La valeur flottante consomme généralement plus d'espace de stockage par rapport au short int. Le programme que nous avons écrit ci-dessus pour la génération de valeurs entières aléatoires sera le même que celui que nous allons écrire ici. La seule différence sera une définition explicite du type de données. Semblable au dernier programme, nous avons également utilisé le fichier d'en-tête time.h ici pour le laisser contribuer à la génération aléatoire de nombres flottants. Si ce fichier d'en-tête n'est pas inclus dans le programme, il donnera la même valeur à chaque fois que le programme. Est exécuté. Vous trouverez ci-dessous le programme de génération de valeurs flottantes aléatoires.

Programme

#include
#include
#include
int main()
(
float rand_num;
srand(time(0));
printf("The randomly generated float number is ”);
rand_num = (float) rand();
printf("%f", rand_num);
)
)

Production:

Dans ce programme, nous avons utilisé (float) qui est utilisé pour définir explicitement que la valeur renvoyée par la fonction rand doit être de nature flottante. Comme la variable ran_num est également définie avec un type de données float, elle sera capable de gérer le nombre float qui a généralement six chiffres après la virgule décimale lorsqu'elle est générée dans le langage de programmation C. Lors de l'impression de la valeur flottante, nous avons utilisé% f car c'est quelque chose qui doit être pris en compte lors de l'impression de la valeur flottante.

Conclusion

Pour améliorer le caractère aléatoire du nombre, on peut tirer parti des expressions mathématiques. En outre, en utilisant la logique, on peut également définir la plage de nombres sous laquelle ils souhaitent que le nombre soit généré de manière aléatoire. La fonction de génération de caoutchouc aléatoire est fournie par tous les langages de programmation et utilisée dans l'application réelle en fonction de l'exigence. Afin d'assurer le fort caractère aléatoire du nombre, nous devons nous assurer que la graine que la fonction rand est utilisée pour générer la valeur aléatoire doit être très aléatoire et nouvelle à chaque exécution du programme.

Articles recommandés

Ceci est un guide du générateur de nombres aléatoires en C. Ici, nous discutons de la fonction, de la génération d'entiers et de la génération de nombres à virgule flottante en C. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus -

  1. Générateur de nombres aléatoires en R
  2. Qu'est-ce que la classe modèle en C ++?
  3. Algorithme de forêt aléatoire
  4. Cadres en Java
  5. Qu'est-ce que le générateur de nombres aléatoires en Python?
  6. Générateur de nombres aléatoires en C ++ (exemples avec étapes)
  7. Générateur de nombres aléatoires dans Matlab
  8. Générateur de nombres aléatoires en C #
  9. Générateur de nombres aléatoires en JavaScript
  10. Générateur de nombres aléatoires en PHP