Vous avez peut-être remarqué qu'en C, en utilisant la fonction rand() de la bibliothèque standard, vous obtenez des résultats décevants, trop souvent les mêmes.
#include <stdlib.h>
#include <stdio.h>
int main()
{
int i;
for(i=0; i<5; i++)
{
printf("%d\n", rand());
}
return 0;
}
41 18467 6334 26500 19169
srand(valeur de la graine)
#include <stdlib.h>
#include <stdio.h>
int rdtsc()
{
__asm__ __volatile__("rdtsc");
}
int main()
{
int i;
for(i=0; i<5; i++)
{
srand(rdtsc());
printf("%d\n", rand());
}
return 0;
}
Résultats pour Générer des nombres aléatoires efficacement avec rand()
Résultats pour Générer des nombres aléatoires efficacement avec rand()
Résultats pour Générer des nombres aléatoires efficacement avec rand()
Résultats pour Générer des nombres aléatoires efficacement avec rand()
Résultats pour Générer des nombres aléatoires efficacement avec rand()
Résultats pour Générer des nombres aléatoires efficacement avec rand()