Exercice langage C corrigé génération de nombres aléatoires

  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 << rand() % 10 << endl;

  // entiers entre 1 et 10
  cout << 1 + (rand() % 10) << endl;

  // 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 << float(rand()) / RAND_MAX * 10 << endl;

  // flottants entre -1 et 1
  cout << (float(rand()) / RAND_MAX * 2) - 1 << endl;

  return 0;
}

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *