Fonction srand

Entête à inclure

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

Fonction srand

void srand( unsigned int seed );

L'aléa est un concept qu'on a du mal à traiter en informatique. 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 machine écoulé.

La fonction srand permet d'initialiser le générateur de nombres aléatoire fournit par la librairie C standard.

Paramètres

  • seed: la valeur d'initialisation du générateur de nombres pseudo aléatoires.

Valeur de retour

Cette fonction ne renvoie pas de valeur de retour.

Exemple de code

#include <stdio.h>          
#include <stdlib.h>
#include <time.h>

int main() {
    
    printf( "%d\n", rand() );
    printf( "%d\n", rand() );
    printf( "%d\n", rand() );

    srand( time( NULL ) );
    
    printf( "%d\n", rand() );
    printf( "%d\n", rand() );
    printf( "%d\n", rand() );    

    return EXIT_SUCCESS;
}

/*
 * Si vous lancez ce programme plusieurs fois (à quelques
 * secondes d'interval), les trois premières valeurs seront
 * toujours les mêmes.
 * 
 * Par contre les trois dernières devraient changer étant
 * donné que le générateur aura été réinitialisé avec une
 * mesure de temps différente.
 */

Sujets connexes