- 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 .
- Pour obtenir un nombre aléatoire entre 1 et 10, il suffit d’ajouter 1 au résultat obtenu au point précédent.
- 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.
- 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; }