Generateur de nombre aléatoire
Résolu
cobra85
Messages postés
132
Date d'inscription
Statut
Membre
Dernière intervention
-
cobra85 Messages postés 132 Date d'inscription Statut Membre Dernière intervention -
cobra85 Messages postés 132 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je cherche à faire un générateur de nombre aléatoire, entre [1;4]
le code ci dessous, me genere toujours la meme suite de nombre.
(il s'agit du langage C)
moi je voudrais qu'il me le génere dans un ordre quelconque.
Merci
je cherche à faire un générateur de nombre aléatoire, entre [1;4]
le code ci dessous, me genere toujours la meme suite de nombre.
(il s'agit du langage C)
void tirerSymbole(int e) { // srand(time(NULL)); { e = 1 + (int)((double)rand() / ((double)RAND_MAX + 1) * 5); if (e==1) { printf("PIERRE"); } else if (e==2) { printf("FEUILLE"); } else if (e==3) { printf("CISEAUX"); } else if (e==4) { printf("PUITS"); } } return e; }
moi je voudrais qu'il me le génere dans un ordre quelconque.
Merci
A voir également:
- Générateur de nombre aléatoire facebook
- Generateur mot de passe - Télécharger - Sécurité
- Story facebook comment ça marche - Guide
- Nombre de jours entre deux dates excel - Guide
- Voir qui regarde mon profil facebook - Guide
- Facebook lite gratuit - iam - Télécharger - Messagerie
5 réponses
:-)
rand() ne renvoie pas de nombres aléatoire. Uniquement des nombres pseudo-aléatoires, c'est à dire une suite de nombre calculés par une formulaire mathématique figée qui donne toujours les mêmes nombres dans le même ordre.
Il faudrait l'initialiser avec quelquechose (date/heure est un début).
C'est à ça que sert le srand(time(NULL)); que tu as mis en commentaire.
rand() ne renvoie pas de nombres aléatoire. Uniquement des nombres pseudo-aléatoires, c'est à dire une suite de nombre calculés par une formulaire mathématique figée qui donne toujours les mêmes nombres dans le même ordre.
Il faudrait l'initialiser avec quelquechose (date/heure est un début).
C'est à ça que sert le srand(time(NULL)); que tu as mis en commentaire.
Salut,
en fait, l'ordinateur ne sait pas générer de nombres vraiment aléatoires, il possède un algorithme de génération de nombres pseudo-aléatoires qui sont liés les uns aux autres. Mais comme tout algorithme, si on le nourrit avec le même nombre en entrée, on a le même nombre en sortie. C'est pourquoi il est recommandé de changer la 'graine' de départ de l'algorithme avec la fonction srand (s pour seed = graine en anglais). On peut donner date et heure, récupérer la miliseconde de l'heure courante ou un timestamp unix (nombre de secondes depuis le 1/1/70)...
en fait, l'ordinateur ne sait pas générer de nombres vraiment aléatoires, il possède un algorithme de génération de nombres pseudo-aléatoires qui sont liés les uns aux autres. Mais comme tout algorithme, si on le nourrit avec le même nombre en entrée, on a le même nombre en sortie. C'est pourquoi il est recommandé de changer la 'graine' de départ de l'algorithme avec la fonction srand (s pour seed = graine en anglais). On peut donner date et heure, récupérer la miliseconde de l'heure courante ou un timestamp unix (nombre de secondes depuis le 1/1/70)...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
//tirage au hazard:
int Random (int _iMin, int _iMax)
{
return (_iMin + (rand () % (_iMax-_iMin+1)));
}
int tirerSymbole(int e)
{
int iRandom;
srand (time (NULL));
iRandom = Random (1,4);
//printf ("%d", iRandom);
if (iRandom==1)
{
printf("PIERRE");
}
if (iRandom==2)
{
printf("FEUILLE");
}
if (iRandom==3)
{
printf("CISEAUX");
}
if (iRandom==4)
{
printf("PUITS");
}
return e;
}
Merci de votre aide
int Random (int _iMin, int _iMax)
{
return (_iMin + (rand () % (_iMax-_iMin+1)));
}
int tirerSymbole(int e)
{
int iRandom;
srand (time (NULL));
iRandom = Random (1,4);
//printf ("%d", iRandom);
if (iRandom==1)
{
printf("PIERRE");
}
if (iRandom==2)
{
printf("FEUILLE");
}
if (iRandom==3)
{
printf("CISEAUX");
}
if (iRandom==4)
{
printf("PUITS");
}
return e;
}
Merci de votre aide