Pour tirer un nombre aléatoire dans un intervalle donné en langage C, vous pouvez utiliser la fonction rand()
de la bibliothèque standard C (stdlib.h
). La fonction rand()
génère un nombre entier pseudo-aléatoire entre 0 et RAND_MAX
, une constante définie dans stdlib.h
. Pour générer un nombre dans un intervalle donné (entre min
et max
), on peut utiliser l'une des solutions suivantes :
// Génère un entier pseudo-aléatoire compris entre min et max (inclus)
int x = min + rand() % (max + 1 - min);
// Génère un nombre réel pseudo-aléatoire dans compris entre min et max (inclus)
float x = min + (float)rand() / ((float)RAND_MAX/(max-min));
Lors de l'utilisation penser à initialiser la graine du générateur avec srand() pour ne pas générer les mêmes tirages à chaque exécution. Pour plus de détails, consulter cette question : En C, comment tirer un nombre aléatoire dans un intervalle ?
Pour obtenir un nombre aléatoire dans un intervalle spécifique [min,max], on utilise ici la formule suivante :
random_number=rand()%(max−min+1)+min
Voici les étapes à suivre pour implémenter cela :
Inclure les bibliothèques nécessaires :
Vous aurez besoin de stdlib.h
pour rand()
et time.h
pour time()
.
Initialiser le générateur de nombres aléatoires :
Utilisez srand()
pour initialiser le générateur avec une valeur de départ (généralement basée sur le temps actuel pour assurer des résultats différents à chaque exécution).
Tirer un nombre aléatoire dans l'intervalle souhaité :
Appliquez la formule mentionnée ci-dessus.
Voici un exemple de programme en C qui tire un nombre aléatoire dans l'intervalle [min,max] :
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int min = 10; // Valeur minimale de l'intervalle
int max = 20; // Valeur maximale de l'intervalle
// Initialiser le générateur de nombres aléatoires avec la valeur de temps actuelle
srand(time(NULL));
// Tirer un nombre aléatoire dans l'intervalle [min, max]
int random_number = rand() % (max - min + 1) + min;
// Afficher le nombre aléatoire
printf("Nombre aléatoire entre %d et %d : %d\n", min, max, random_number);
return 0;
}
srand(time(NULL))
: Initialise le générateur de nombres aléatoires avec la valeur actuelle de l'horloge. Cela garantit que les nombres générés sont différents à chaque exécution du programme.rand() % (max - min + 1) + min
: Cette expression limite le résultat de rand()
à l'intervalle [min,max].RAND_MAX
: C'est la valeur maximale que rand()
peut retourner. Cette valeur est définie dans stdlib.h
et est généralement une constante élevée, mais dépend de l'implémentation spécifique de la bibliothèque standard C.rand()
sont pseudo-aléatoires, ce qui signifie qu'ils sont déterminés par une séquence prédéfinie basée sur la graine donnée à srand()
.