Rand est aléatoire ? Pas chez moi !
Résolu
Dent9
Messages postés
8
Statut
Membre
-
Dent9 Messages postés 8 Statut Membre -
Dent9 Messages postés 8 Statut Membre -
Bonjour tout le monde,
Je rencontre un soucis, j'apprends doucement le langage C sur le site du zéro et lorsque j'arrive à "générer un chiffre aléatoire" lors du premier mini jeux. (Le jeux consiste à trouver le chiffre mystère à l'aide de + ou -)
J'utilise la fonction suivante.
srand(time(NULL));
NombreMystere = (rand() % (MAX - MIN + 1)) +MIN;
Et lorsque je regarde avec un "printf" ce que "NombreMystere" renvoie, il renvoie toujours des nombres incréments de 3-4-5 jamais plus et ne fais que croitre. Ce qui n'est pas du tout aléatoire !
exemple (19,22,26,29)
Merci d'avance pour vos réponses !
Cordialement
Nicolas
Je rencontre un soucis, j'apprends doucement le langage C sur le site du zéro et lorsque j'arrive à "générer un chiffre aléatoire" lors du premier mini jeux. (Le jeux consiste à trouver le chiffre mystère à l'aide de + ou -)
J'utilise la fonction suivante.
srand(time(NULL));
NombreMystere = (rand() % (MAX - MIN + 1)) +MIN;
Et lorsque je regarde avec un "printf" ce que "NombreMystere" renvoie, il renvoie toujours des nombres incréments de 3-4-5 jamais plus et ne fais que croitre. Ce qui n'est pas du tout aléatoire !
exemple (19,22,26,29)
Merci d'avance pour vos réponses !
Cordialement
Nicolas
A voir également:
- Rand est aléatoire ? Pas chez moi !
- Tirage au sort excel aléatoire sans doublon ✓ - Forum Excel
- Vlc lecture aléatoire - Forum Téléphones & tablettes Android
- Lecture aléatoire VLC - Forum Lecteurs et supports vidéo
- Comment désactiver le mode aléatoire sur VLC? - Forum Lecteurs et supports vidéo
- Diaporama aléatoire windows 10 - Forum Windows 7
3 réponses
Bonjour,
Peux-tu poster ton code en entier ? Il se peut que le problème vienne d'ailleurs. N'oublie pas d'utiliser la balise "code c" à droite du bouton "souligné".
Sinon, le modulo n'est pas top. Il est plutôt conseillé d'utiliser la division/multiplication pour que le nombre se trouve dans l'intervalle. Cela pourrait peut-être résoudre ton problème.
Cdlt,
Peux-tu poster ton code en entier ? Il se peut que le problème vienne d'ailleurs. N'oublie pas d'utiliser la balise "code c" à droite du bouton "souligné".
Sinon, le modulo n'est pas top. Il est plutôt conseillé d'utiliser la division/multiplication pour que le nombre se trouve dans l'intervalle. Cela pourrait peut-être résoudre ton problème.
Cdlt,
#include <stdio.h>
#include <stdlib.h>
int main()
{
int NombreMystere = 0 ;
const int MAX = 100, MIN = 1;
srand(time(NULL));
NombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
printf("%d", NombreMystere);
}
Voilà mon code, désolé pour les balises, c'est mon premier post sur ce site :)
Bonjour,
Tu as oublié d'inclure time.h (pour time()).
Tu as aussi oublié le return 0;
Sinon pour le reste, c'est étrange. Attends-tu suffisamment de temps avant de relancer ton programme ? Car, c'est baser sur l'horloge, donc...
Sinon ce que tu peux faire, c'est de faire un rand(); tout simple avant NombreMystere=...; ainsi tu prendras le second nombre pseudo aléatoire de la liste.
Cdlt,
Tu as oublié d'inclure time.h (pour time()).
Tu as aussi oublié le return 0;
Sinon pour le reste, c'est étrange. Attends-tu suffisamment de temps avant de relancer ton programme ? Car, c'est baser sur l'horloge, donc...
Sinon ce que tu peux faire, c'est de faire un rand(); tout simple avant NombreMystere=...; ainsi tu prendras le second nombre pseudo aléatoire de la liste.
Cdlt,