Exercice langage C: Génération de nombres aléatoires

Créez un programme avec le code suivant:

#include
#include
using namespace std;
int main(int argc, char **argv)
{
srand(0);
cout cout cout return 0;
}

Lancez l'exécutable plusieurs fois pour vérifier que les mêmes nombres sont affichés.

Changez l'instruction srand(0); par srand(time(0)); et vérifiez que cette fois les nombres sont différents à chaque exécution.

N'oubliez pas d'ajouter #include  au début du programme pour pouvoir utiliser la fonction time().

  1. Modifiez le programme pour que les nombres soient des nombres entiers compris entre 0 et 9.
  2. Modifiez le programme pour que les nombres soient des nombres entiers compris entre 1 et 10.
  3. Modifiez le programme pour que les nombres soient des nombres flottants (réels) compris entre 0 et 10.
  4. Modifiez le programme pour que les nombres soient des nombres flottants (réels) compris entre -1 et +1.
  1. La fonction rand() retourne un entier entre 0 et RAND_MAX, où RAND_MAX est un très grand nombre entier. La manière la plus simple d'obtenir un nombre aléatoire entre 0 et 9, consiste à prendre le reste de la division entière par 10 de l'entier retournè par rand(). Comme vous le savez, le reste de la division entière par  donne un nombre entre 0 et n -1 .
  2. Pour obtenir un nombre aléatoire entre 1 et 10, il suffit d'ajouter 1 au résultat obtenu au point précédent.
  3. Commençons par obtenir un nombre flottant entre 0 et 1. Si l'on convertit le résultat de rand() en float et qu'on le divise par RAND_MAX (i.e. la plus grande valeur possible), le résultat sera un nombre flottant compris entre 0 et 1. Pour obtenir un flottant entre 0 et 10, il suffit simplement de multiplier ce résultat par 10.
  4. Appliquons la méthode du point précédent afin d'obtenir un nombre flottant entre 0 et 2. En lui soustrayant 1, on obtient à présent un flottant entre -1 et 1.

#include
#include
using namespace std;
int main(int argc, char **argv)
{
srand(time(NULL));
// entiers entre 0 et 9
cout // entiers entre 1 et 10
cout // flottants entre 0 et 10
// rand(): entier entre 0 et RAND_MAX
// float(rand()): flottant entre 0 et RAND_MAX
// float(rand()) / RAND_MAX: flottant entre 0 et 1
cout // flottants entre -1 et 1
cout return 0;
}

Article publié le 16 Mars 2012 Mise à jour le Lundi, 07 Novembre 2022 13:16 par BENKIRANE Fatima Ezzahra