C Programmation

Fonction rand() en langage C

Fonction rand() en langage C
En langage C, le rand() la fonction est utilisée pour Générateur de pseudo-numéros (PRNG). Les nombres aléatoires générés par la fonction rand() ne sont pas vraiment aléatoires. C'est une séquence qui se répète périodiquement, mais la période est si grande qu'on peut l'ignorer. le rand() La fonction fonctionne en mémorisant une valeur de départ qui est utilisée pour calculer le prochain nombre aléatoire et la prochaine nouvelle graine. Dans cet article, nous allons discuter en détail de la façon dont des nombres aléatoires peuvent être générés à l'aide du rand() une fonction. Alors, commençons!

En tête de fichier:

stdlib.h

Syntaxe:

int rand (vide)

Valeurs de retour :

Cette fonction renvoie le prochain nombre pseudo-aléatoire de la série. La valeur de plage de la série de nombres est comprise entre 0 et RAND_MAX. RAND_MAX est une macro définie dans stdlib.h fichier d'en-tête, dont la valeur est la valeur maximale, qui peut retourner par la fonction rand(). La valeur de RAND_MAX est supérieure mais pas inférieure à 32767 selon les bibliothèques C.

//Exemple 1.c
#inclure
#inclure
int main()

int je;
printf("10 nombres aléatoires =>\n");
pour(i=0;i<10;i++)

printf("%d ",rand());

printf("\n");
renvoie 0 ;


Dans Exemple1.c, nous appelons la fonction rand() à chaque itération de la boucle for et affichons la valeur de retour de la fonction. La séquence de valeurs de la fonction rand() est la même à chaque fois que nous exécutons le programme. Par défaut, la graine de la fonction rand est définie sur 1.

Nous pouvons définir la graine pour la fonction rand en utilisant le srand() une fonction. La graine ne peut être réglée qu'une seule fois, et avant la première fois rand() appel de fonction.

fonction srand() :

En tête de fichier:

stdlib.h

Syntaxe:

int srand (graine int non signée)

Arguments:

Cette fonction prend 1 argument

planter: Une valeur entière utilisée comme graine pour une nouvelle série de nombres pseudo-aléatoires.

Valeurs de retour :

Rien

//Exemple2.c
#inclure
#inclure
#inclure
int main()

int je;
srand(heure(0));
printf("10 nombres aléatoires =>\n");
pour(i=0;i<10;i++)

printf("%d ",rand());

printf("\n");
renvoie 0 ;


Dans Exemple2.c, nous avons utilisé la fonction srand() pour définir la graine initiale de la séquence de nombres aléatoires générée par la fonction rand(). Chaque fois que le programme est exécuté, une séquence différente est générée. Dans srand(), la fonction time(0) (déclarée dans temps.h fichier d'en-tête) est utilisé comme une graine. Cette fonction time(0) renvoie le nombre de secondes écoulées depuis l'époque (00:00:00, 1er janvier 1970). Cela peut toujours produire les mêmes séquences si vous exécutez le programme dans la même seconde.

//Exemple3.c
#inclure
#inclure
#inclure
int main()

int je;
srand(heure(0));
printf("10 nombres aléatoires entre 1 et 10=>\n");
pour(i=0;i<10;i++)

printf("%d ",(rand() %10) + 1);

printf("\n");
renvoie 0 ;


Dans l'exemple3.c nous avons vu comment des nombres aléatoires peuvent être générés entre 1 et 10.

//Exemple4.c
#inclure
#inclure
#inclure
int main()

int i,max,min;
printf("Entrez la valeur min => ");
scanf("%d",&min);
printf("Entrez la valeur max => ");
scanf("%d",&max);
si(min>max)

printf("La valeur minimale est supérieure à la valeur maximale\n");
renvoie 0 ;

srand(heure(0));
printf("10 nombres aléatoires entre %d et %d=>\n",min,max);
pour(i=0;i<10;i++)

printf("%d ",(rand() % (max - min +1)) + min);

printf("\n");
renvoie 0 ;


Dans l'exemple4.c nous avons pris la plage de l'utilisateur et généré un nombre aléatoire dans cette plage. La formule est : rand() % (max - min +1)) + min

//Exemple5.c
#inclure
#inclure
#inclure
int main()

int je;
srand(heure(0));
printf("10 nombres aléatoires entre 0.0 et 1.0=>\n");
pour(i=0;i<10;i++)

printf("%f",((float)rand() /RAND_MAX));

printf("\n");
renvoie 0 ;


Dans l'exemple5.c, nous avons vu comment générer des nombres aléatoires entre float 0.0 et 1.0 La formule est : (float)rand() /RAND_MAX)

//Exemple6.c
#inclure
#inclure
#inclure
int main()

int je;
flottant max, min;
printf("Entrez la valeur min => ");
scanf("%f",&min);
printf("Entrez la valeur max => ");
scanf("%f",&max);
si(min>max)

printf("La valeur min est supérieure à la valeur max\n");
renvoie 0 ;

srand(heure(0));
printf("10 nombres aléatoires entre %f et %f =>\n",min,max);
pour(i=0;i<10;i++)

printf("%f ",min + ((float)rand() /(RAND_MAX/(max - min))));

printf("\n");
renvoie 0 ;


Dans l'exemple6.c, nous avons pris la plage de l'utilisateur et généré un nombre aléatoire dans cette plage (tous deux inclus). La formule est : min + ((float)rand() /(RAND_MAX/(max - min)))

Conclusion:

Dans cet article, nous avons appris comment générer des nombres aléatoires en utilisant le rand() et srand() une fonction. Il n'y a aucune garantie sur la qualité des nombres aléatoires générés par la fonction rand, mais c'est assez bon pour une utilisation occasionnelle.

Installez le dernier émulateur Dolphin pour Gamecube et Wii sur Linux
L'émulateur Dolphin vous permet de jouer aux jeux Gamecube et Wii de votre choix sur des ordinateurs personnels Linux (PC). Étant un émulateur de jeu...
Comment utiliser le moteur de triche GameConqueror sous Linux
L'article couvre un guide sur l'utilisation du moteur de triche GameConqueror sous Linux. De nombreux utilisateurs qui jouent à des jeux sur Windows u...
Meilleurs émulateurs de console de jeu pour Linux
Cet article répertorie les logiciels d'émulation de console de jeu populaires disponibles pour Linux. L'émulation est une couche de compatibilité logi...