Les nombres aléatoires en C
http://nicolasj.developpez.com/articles/libc/hasard/
Citation:
Au travers de ce tutoriel, je vais vous exposer différentes méthodes pour générer une suite de nombres pseudo-aléatoires. La théorie peut s'appliquer à tous les langages de programmation. Par contre les exemples seront donnés en C.
Vous pouvez laisser un commentaire sur cet article à la suite.
a propos de la mise a echelle
Salut,
Je ne comprends pas bien cette partie :
Citation:
Nous obtenons plus de nombres compris entre 0 et 5, pour pallier ce problème, il faut réaliser une "mise à l'échelle" (extrait de la faq FAQ C) :
Code:
1 2 3
| #include <stdlib.h>
int randomValue = (int)(rand() / (double)RAND_MAX * (N - 1)); |
si on prend comme dans l'exemple RAND_MAX = 25 et N = 10, on se retrouve avec les possiblités suivantes :
25 / 25 * (10-1) = 9
24 / 25 * (10-1) = 8.64
23 / 25 * (10-1) = 8.28
22 / 25 * (10-1) = 7.92
21 / 25 * (10-1) = 7.56
20 / 25 * (10-1) = 7.2
...
donc une fois casté on a 9, 8, 8, 7, 7, 7 ...
On a donc moins de chance d'obtenir un 9 qu'un 7 non?
ps: je n'ai rien trouvé dans la FAQ pointée au sujet de "mise a l'echelle".