Problème sur les nombres aléatoires

Résolu
cs_jacksonfive Messages postés 7 Date d'inscription lundi 12 mai 2008 Statut Membre Dernière intervention 20 mai 2008 - 14 mai 2008 à 22:58
cs_jacksonfive Messages postés 7 Date d'inscription lundi 12 mai 2008 Statut Membre Dernière intervention 20 mai 2008 - 20 mai 2008 à 19:38
Bonjour

Je cherche la fonction qui tire un nombre aléatoire. Je souhaite créer un entier compris entre 2 et 14, j'avais pensé tirer un random entre 0 et 1, le multiplier par 13 et ajouter 1, puis l'arrondir au supérieur.

Malheureusement je n'ai pas cette fonction.

Si vous avez une meilleure idée je suis preneur  ^^

Deuxieme question : quand on tire un random sur c++, ce random sera toujours identique à chaque fois qu'on lance le programme. Je me rappelle vaguement qu'une ligne au debut du code evite ceci. Si vous pouviez me la rappeler.

Voila merci à ceux qui pourront m'aider

Jackson

13 réponses

BastienL21 Messages postés 172 Date d'inscription dimanche 10 décembre 2000 Statut Membre Dernière intervention 12 février 2009 2
15 mai 2008 à 17:17
PS: inclure
#include <time.h>

//Merci à tous de vous interesser à mon problème,Cordialement,
3
tibob51 Messages postés 268 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 13 mai 2013 2
14 mai 2008 à 23:15
Salut,ceci devrai faire l'affaire

srand(GetTickCount());//Initialisation du générateur de chiffres aléatoires
rand()%13+2;
0
cs_jacksonfive Messages postés 7 Date d'inscription lundi 12 mai 2008 Statut Membre Dernière intervention 20 mai 2008
14 mai 2008 à 23:31
merci, le nombre aléatoire fonctionne bien, cependant, la ligne :
srand(GetTickCount());
ne fonctionne pas. Message d'erreur : GetTickCount() undeclared

Je suppose que c'est cette ligne qui permettra de changer a chaque utilisation la valeur des "rand". Peut etre faut-il inclure une bibliotheque ? merci
0
gamemonde Messages postés 336 Date d'inscription samedi 9 août 2003 Statut Membre Dernière intervention 9 juillet 2011 2
14 mai 2008 à 23:41
#include ctime ou time.h
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_jacksonfive Messages postés 7 Date d'inscription lundi 12 mai 2008 Statut Membre Dernière intervention 20 mai 2008
14 mai 2008 à 23:54
Merci mais ça ne fonctionne toujours pas...
0
tibob51 Messages postés 268 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 13 mai 2013 2
14 mai 2008 à 23:55
pour GetTickCount c'est dans window.h, si je ne me trompe pas, ça retourne le nombre de mili secondes depuis le démarrage de wndows.
Sinon tu peu remplacer par "time(0)" en incluant time.h
0
cs_faucheuse Messages postés 308 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 27 octobre 2011
15 mai 2008 à 09:07
Initialise la machine aléatoire avec : Randomize() ;

Ensuite demande un nombre compris, par exemple entre 1 et 1024 et le stocker dans la variable 'a' : rand()%1024 ;

PS : je ne sais plus comment faire si on ne part pas de 1, et je ne suis pas sur qu'il y est une majuscule a Randomize().
De plus je ne sais pas si il faut que tu inclus une bibliothèque pour l'utiliser.

Voili Voilou,en esperant t'avoir  aider, bonne prog.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
15 mai 2008 à 09:42
Randomize() n'existe pas en C/C++.

ciao...
BruNews, MVP VC++
0
cs_faucheuse Messages postés 308 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 27 octobre 2011
15 mai 2008 à 10:24
Bin si, c'est la fonction que j'utilise dans mes programmes en C++, dans un jeu ou on doit deviner un nombre aléatoire de l'ordi.
0
tibob51 Messages postés 268 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 13 mai 2013 2
15 mai 2008 à 10:34
Randomize n'existe pas dans le c++ standar,c'est implenté par borland ça (j'ai utilisé borland), dans la lib standar c'est srand et rand.
0
cs_faucheuse Messages postés 308 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 27 octobre 2011
15 mai 2008 à 11:53
Ah ok, je savais pas, merci de la precision ^^
0
BastienL21 Messages postés 172 Date d'inscription dimanche 10 décembre 2000 Statut Membre Dernière intervention 12 février 2009 2
15 mai 2008 à 17:15
Bonjour,   


#define MAX 10 //Tapez à la place 10 , le nombre maxi

#define MIN 1 //Tapez à la place 1, le nombre mini
srand(time(NULL));
VariableOuLeNombreSeraStocke=(rand()%(MAX-MIN+1))+MIN;

 Cordialement,
0
cs_jacksonfive Messages postés 7 Date d'inscription lundi 12 mai 2008 Statut Membre Dernière intervention 20 mai 2008
20 mai 2008 à 19:38
ok merci beaucoup pour ton aide
0
Rejoignez-nous