Bonjour,
Encore une fois une petite des petites pas très importantes :
Pour tenter de comprendre la fonction rand je lance la programme très basique suivant :
Je m'aperçois que les nombres renvoyés sont proches et de plus en plus grands, en gros ils augmentent toujours de la même chose (2308 puis 2330,2378..), Je suppose que le premier usage de rand() est directement lié au temps du genre : (moment de l'execution du time(NULL) %rand_max, j'ai bon ? La première utilisation de rand est très prédictible alors.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { srand((unsigned)time(NULL)); printf("%d",rand()); return 0; }
Au passage y a t'il une raison (autre qu'historique) pour que rand_max ne soit pas égal à la taille maximal d'un unsigned int ?
Passons au programme suivant :
Je me dis que la progression lente va être sur le premier nombre renvoyé mais elle l'est sur le second ! (genre 1520 2304 puis 16823 2316 ...). printf lit il les arguments de droite à gauche ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { srand((unsigned)time(NULL)); printf("%d %d",rand(),rand()); return 0; }
Partager