Question #2780   Proposée par Answiki le 27/11/2021 à 8:30:08 UTC

En C, comment éviter que les tirages aléatoires soient tous identiques ?

Answer   Submitted by Answiki on 02/22/2022 at 07:24:18 PM UTC

En C, la fonction rand() génère des nombres aléatoires sur la base d'une graine (seed) . Si cette graine n'est pas initialisée, il est possible qu'à chaque exécution du programme, les nombres générés soient identiques. La graine peut être définie avec la fonction srand().


La solution classiquement utilisée consiste à initialiser la graine avec l'heure courante (qui change constamment) :

srand (time(NULL));

L'exemple suivant génère des nombres aléatoires :

#include <stdio.h>      /* printf, NULL */
#include <stdlib.h>     /* srand, rand */
#include <time.h>       /* time */

int main ()
{
	printf ("Premier nombre : %d\n", rand()%100);
	srand (time(NULL));
	printf ("Deuxième nombre : %d\n", rand()%100);
	srand (1);
	printf ("Encore le premier nombre : %d\n", rand()%100);

	return 0;
}


8 events in history
Answer by Answiki on 02/22/2022 at 07:24:18 PM

En C, la fonction rand() génère des nombres aléatoires sur la base d'une graine (seed) . Si cette graine n'est pas initialisée, il est possible qu'à chaque exécution du programme, les nombres générés soient identiques. La graine peut être définie avec la fonction srand().


La solution classiquement utilisée consiste à initialiser la graine avec l'heure courante (qui change constamment) :

srand (time(NULL));

L'exemple suivant génère des nombres aléatoires :

#include <stdio.h>      /* printf, NULL */
#include <stdlib.h>     /* srand, rand */
#include <time.h>       /* time */

int main ()
{
	printf ("Premier nombre : %d\n", rand()%100);
	srand (time(NULL));
	printf ("Deuxième nombre : %d\n", rand()%100);
	srand (1);
	printf ("Encore le premier nombre : %d\n", rand()%100);

	return 0;
}


Answer by Answiki on 11/27/2021 at 08:30:56 AM

En C, la fonction rand() génère des nombres aléatoires sur la base d'une graine (seed) . Si cette graine n'est pas initialisée, il est possible qu'à chaque exécution du programme, les nombres générés soient identiques.


La solution classiquement utilisée consiste à initialiser la graine avec l'heure courante (qui change constamment) :

srand (time(NULL));

L'exemple suivant génère des nombres aléatoires :

#include <stdio.h>      /* printf, NULL */
#include <stdlib.h>     /* srand, rand */
#include <time.h>       /* time */

int main ()
{
	printf ("Premier nombre : %d\n", rand()%100);
	srand (time(NULL));
	printf ("Deuxième nombre : %d\n", rand()%100);
	srand (1);
	printf ("Encore le premier nombre : %d\n", rand()%100);

	return 0;
}


Question by Answiki 11/27/2021 at 08:30:08 AM
En C, comment éviter que les tirages aléatoires soient toujours les mêmes ?
Question by Answiki 11/27/2021 at 08:30:08 AM
En C, comment éviter que les tirages aléatoires soient tous identiques ?
Question by Answiki 11/27/2021 at 08:30:08 AM
En C, comment éviter que mes tirages au hasard avec la fonction rand() soient toujours les mêmes ?
Question by Answiki 11/27/2021 at 08:30:08 AM
En C, comment éviter que mes tirages au hasard avec la fonction rand() soient tous identiques ?
Question by Answiki 11/27/2021 at 08:30:08 AM
En C, comment éviter que mes tirages au hasard soient toujours les mêmes ?
Question by Answiki 11/27/2021 at 08:30:08 AM
En C, comment éviter que mes tirages au hasard soient tous identiques ?
# ID Query URL Count

Icons proudly provided by Friconix.