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 :

Fonction srand

La fonction realloc La fonction strtod


Entête à inclure

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

Fonction srand

void srand( unsigned int seed );

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.

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

Paramètres

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

<stdlib.h>
rand
RAND_MAX



La fonction realloc La fonction strtod