Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Macro RAND_MAX

La fonction rand La fonction realloc


Entête à inclure

#include <stdlib.h>  // <cstdlib> en C++

MACRO RAND_MAX

#define    RAND_MAX  <aBigIntegerValue>

S'expense en une valeur numérique représentant la plus grande valeur pouvant être renvoyée par le générateur de nombres pseudo-aléatoires (la fonction rand).

Cette valeur est dépendante de de votre implémentation de <stdlib.h>, mais le standard C ISO garanti que cette valeur sera au moins supérieure ou égale à 32767.

l'aléatoire est un concept qu'on a du mal à traiter en informatique, étant données que nos machines sont des systèmes déterministes. Actuellement, l'aléa est simulé via des algorithmes mathématiques qui renvoient des suites de valeurs. Si ces algorithmes sont utilisés plusieurs fois à la suite, ils ont le défaut de toujours renvoyer la même suite de valeurs. Pour contourner ce problème, on initialise souvent ces algorithmes avec une valeur imprédictible : pourquoi pas le temps système de la machine.

Exemple de code

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void displayOnRandomValue() {
    int randomValue = rand();
    printf( "0 <= %10d <= %d\n", randomValue, RAND_MAX );
}

int main() {

    // On commence par initialiser le générateur de nombre pseudo-aléatoires.
    srand( time( NULL ) );

    // On appelle dix fois notre fonction displayOnRandomValue
    for( int i=0; i<10; i++ ) {
        displayOnRandomValue();
    }

    return EXIT_SUCCESS;
}
Exemple d'utilisation de la macro MB_CUR_MAX

Et voici un exemple de résultat produit par cet exemple de code (il a était généré à sur un système Linux 64 bits) :

$> gcc -Wall -o sample sample.c
$> ./sample
0 <=  433934601 <= 2147483647
0 <=  938128853 <= 2147483647
0 <=  259856180 <= 2147483647
0 <= 1780788664 <= 2147483647
0 <= 1767023861 <= 2147483647
0 <= 1457366211 <= 2147483647
0 <=  619690834 <= 2147483647
0 <=  458640191 <= 2147483647
0 <=  193112085 <= 2147483647
0 <= 1159462130 <= 2147483647
$>

Sujets connexes

<stdlib.h>
rand
time


La fonction rand La fonction realloc