Problème fonction rand() C
Fermé
lezard136
-
Modifié par lezard136 le 17/11/2010 à 13:51
malek2610 Messages postés 4 Date d'inscription vendredi 21 janvier 2011 Statut Membre Dernière intervention 12 mars 2012 - 10 oct. 2011 à 13:11
malek2610 Messages postés 4 Date d'inscription vendredi 21 janvier 2011 Statut Membre Dernière intervention 12 mars 2012 - 10 oct. 2011 à 13:11
A voir également:
- Problème fonction rand() C
- Fonction si et - Guide
- Fonction moyenne excel - Guide
- Fonction somme excel - Guide
- Fonction remplacer word - Guide
- Excel renvoyer la valeur d'une cellule en fonction d'une autre - Forum Logiciels
4 réponses
Utilisateur anonyme
Modifié par lord_abdennour le 17/11/2010 à 16:06
Modifié par lord_abdennour le 17/11/2010 à 16:06
c'est normal , ajoute cette ligne de code après la déclaration des variables
pour plus d'info voici un exemple
https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c/14828-tp-plus-ou-moins-votre-premier-jeu
srand(time(NULL));
pour plus d'info voici un exemple
https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c/14828-tp-plus-ou-moins-votre-premier-jeu
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
17 nov. 2010 à 16:22
17 nov. 2010 à 16:22
rand() est un générateur de nombre pseudo-aléatoire, c'est à dire que la suite de nombre est toujours la même. Avec srand, tu peut modifier la graine et introduire un peu plus d'aléatoire.
Utilisateur anonyme
17 nov. 2010 à 16:47
17 nov. 2010 à 16:47
voici un exemple d'utilisation de srand
#include<stdio.h> #include<stdlib.h> #include<time.h> int main() { int N ; srand(time(NULL)); N = rand() % 10; // un nombre inférieur a 10 printf(" N = %d \n",N); return EXIT_SUCCESS; }
malek2610
Messages postés
4
Date d'inscription
vendredi 21 janvier 2011
Statut
Membre
Dernière intervention
12 mars 2012
10
10 oct. 2011 à 13:11
10 oct. 2011 à 13:11
NOM
rand, srand - Générateur de nombres aléatoires.
SYNOPSIS
#include <stdlib.h>
int rand (void);
void srand (unsigned int seed);
DESCRIPTION
La fonction rand() renvoie un entier pseudo-aléatoire entre 0 et RAND_MAX.
La fonction srand() utilise son argument comme "graine" pour la génération d'une nouvelle séquence de nombres pseudo-aléatoires, qui seront fournis par rand(). Ces séquences sont reproductibles en appelant srand() avec la même valeur de graine.
Si aucune graine originale n'est fournie, la fonction rand() commence en utilisant la valeur 1.
VALEUR RENVOYÉE
La fonction rand() renvoie un nombre entier entre 0 et RAND_MAX. La fonction srand() ne renvoie aucune valeur.
NOTES
Les versions de rand() et srand() de la bibliothèque C de Linux utilisent le même générateur de nombres aléatoires que random() et srandom(), ainsi les bits de poids faibles sont tout aussi imprévisibles que les bits de poids forts. Ceci n'est pas le cas avec les anciennes implémentations de rand(), où les bits de poids faibles n'étaient pas "aussi aléatoires" que ceux de poids forts.
Dans Numerical Recipes in C: The Art of Scientific Computing (William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling; New York: Cambridge University Press, 1990 (1st ed, p. 207)), le commentaire suivant apparaît :
"Si vous désirez engendrer un entier aléatoire entre 1 et 10, vous devez toujours procéder en utilisant les bits de poids forts, comme dans :
j=1+(int) (10.0*rand()/(RAND_MAX+1.0));
et jamais ainsi :
j=1+(rand() % 10);
(car cette derniere version utilise les bits de poids faibles)."
La génération de nombres aléatoires est un domaine complexe. Le livre Numerical Recipes in C (référence ci-dessus) fournit une excellente présentation pratique d'un générateur aléatoire dans le chapitre 1 (Random Numbers).
Pour une discussion plus théorique, qui aborde également en profondeur d'autres domaines, voir le chapitre 3 (Random Numbers) du livre de Donald E. Knuth The Art of Computer Programming, volume 2 (Seminumerical Algorithms), 2nd ed.; Reading, Massachusetts: Addison-Wesley Publishing Company, 1981.
[NDT] : Les 3 volumes de "Art of Computer Programming" n'existent pas en version française à ma connaissance. C'est néanmoins un ouvrage que je recommande fortement, même si la lecture en version anglaise le rend un peu aride...
Je ne sais pas si "Numerical Recipes in C" est disponible en traduction francaise.
CONFORMITÉ
SVID 3, BSD 4.3, ISO 9899
rand, srand - Générateur de nombres aléatoires.
SYNOPSIS
#include <stdlib.h>
int rand (void);
void srand (unsigned int seed);
DESCRIPTION
La fonction rand() renvoie un entier pseudo-aléatoire entre 0 et RAND_MAX.
La fonction srand() utilise son argument comme "graine" pour la génération d'une nouvelle séquence de nombres pseudo-aléatoires, qui seront fournis par rand(). Ces séquences sont reproductibles en appelant srand() avec la même valeur de graine.
Si aucune graine originale n'est fournie, la fonction rand() commence en utilisant la valeur 1.
VALEUR RENVOYÉE
La fonction rand() renvoie un nombre entier entre 0 et RAND_MAX. La fonction srand() ne renvoie aucune valeur.
NOTES
Les versions de rand() et srand() de la bibliothèque C de Linux utilisent le même générateur de nombres aléatoires que random() et srandom(), ainsi les bits de poids faibles sont tout aussi imprévisibles que les bits de poids forts. Ceci n'est pas le cas avec les anciennes implémentations de rand(), où les bits de poids faibles n'étaient pas "aussi aléatoires" que ceux de poids forts.
Dans Numerical Recipes in C: The Art of Scientific Computing (William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling; New York: Cambridge University Press, 1990 (1st ed, p. 207)), le commentaire suivant apparaît :
"Si vous désirez engendrer un entier aléatoire entre 1 et 10, vous devez toujours procéder en utilisant les bits de poids forts, comme dans :
j=1+(int) (10.0*rand()/(RAND_MAX+1.0));
et jamais ainsi :
j=1+(rand() % 10);
(car cette derniere version utilise les bits de poids faibles)."
La génération de nombres aléatoires est un domaine complexe. Le livre Numerical Recipes in C (référence ci-dessus) fournit une excellente présentation pratique d'un générateur aléatoire dans le chapitre 1 (Random Numbers).
Pour une discussion plus théorique, qui aborde également en profondeur d'autres domaines, voir le chapitre 3 (Random Numbers) du livre de Donald E. Knuth The Art of Computer Programming, volume 2 (Seminumerical Algorithms), 2nd ed.; Reading, Massachusetts: Addison-Wesley Publishing Company, 1981.
[NDT] : Les 3 volumes de "Art of Computer Programming" n'existent pas en version française à ma connaissance. C'est néanmoins un ouvrage que je recommande fortement, même si la lecture en version anglaise le rend un peu aride...
Je ne sais pas si "Numerical Recipes in C" est disponible en traduction francaise.
CONFORMITÉ
SVID 3, BSD 4.3, ISO 9899