A voir également:
- Langage C chiffre aléatoire non constant.
- Langage ascii - Guide
- Excel trier par ordre croissant chiffre - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Application pour écrire les chiffre en lettre - Télécharger - Outils professionnels
- Langage binaire - Guide
2 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 843
1 avril 2011 à 23:50
1 avril 2011 à 23:50
Bonjour,
C'est normal, rand() renvoie toujours le même nombre. Votre graine est donc constante (srand(a)).
Pour rendre un nombre "aléatoire", vous pouvez utiliser : srand(time(NULL));
Vous aurez besoin d'ajouter en plus la bibliothèque time.h
Cdlt,
C'est normal, rand() renvoie toujours le même nombre. Votre graine est donc constante (srand(a)).
Pour rendre un nombre "aléatoire", vous pouvez utiliser : srand(time(NULL));
Vous aurez besoin d'ajouter en plus la bibliothèque time.h
Cdlt,
Bonjour,
Les nombres générés par rand() ne sont pas aléatoires mais pseudo-aléatoire. Ca change tout car l'algorithme débute avec une graine (seed) et applique une fonction sur le dernier résultat renvoyé par rand() si un appel a déjà été fait, sinon, il part de la graine.
srand() sert à définir la graine. Ensuite rand() calcul le premier nombre en partant de la graine, le deuxième en partant du premier... C'est une suite récurrente en fait et U0 est la graine.
Tu utilise rand() dans srand() sans avoir initialisé la graine avant. Une graine par défaut est prise. Donc tu as toujours les mêmes nombres.
En clair, met srand("autre chose"). Ce "autre chose" peut-être le temps (time.h). Il y a plein de code à ce sujet tu trouvera très facilement.
Les nombres générés par rand() ne sont pas aléatoires mais pseudo-aléatoire. Ca change tout car l'algorithme débute avec une graine (seed) et applique une fonction sur le dernier résultat renvoyé par rand() si un appel a déjà été fait, sinon, il part de la graine.
srand() sert à définir la graine. Ensuite rand() calcul le premier nombre en partant de la graine, le deuxième en partant du premier... C'est une suite récurrente en fait et U0 est la graine.
Tu utilise rand() dans srand() sans avoir initialisé la graine avant. Une graine par défaut est prise. Donc tu as toujours les mêmes nombres.
En clair, met srand("autre chose"). Ce "autre chose" peut-être le temps (time.h). Il y a plein de code à ce sujet tu trouvera très facilement.