Language C: Tirez un nombre au hasard ...
Résolu/Fermé
Dabron
Messages postés
27
Date d'inscription
lundi 16 février 2009
Statut
Membre
Dernière intervention
30 mars 2010
-
18 févr. 2009 à 14:35
bizu53 Messages postés 1274 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 21 juin 2015 - 18 févr. 2009 à 16:36
bizu53 Messages postés 1274 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 21 juin 2015 - 18 févr. 2009 à 16:36
A voir également:
- Language C: Tirez un nombre au hasard ...
- Autocad 2008 language pack french - Forum AutoCAD
- Office 2016 language pack french 64-bit ✓ - Forum Bureautique
- Windows 7 language pack french download ✓ - Forum Windows 7
- Photoshop cs6 french language pack - Forum Photoshop
- Rutube change language - Forum TV & Vidéo
5 réponses
JR des cavernes
Messages postés
152
Date d'inscription
mardi 6 mai 2008
Statut
Membre
Dernière intervention
19 mai 2009
84
18 févr. 2009 à 14:38
18 févr. 2009 à 14:38
salut,
int hasard;
hasard = rand()%10;
puis tu fais tes tests sur la variable hasard...
int hasard;
hasard = rand()%10;
puis tu fais tes tests sur la variable hasard...
NookZ
Messages postés
2138
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
7 mars 2013
513
18 févr. 2009 à 14:38
18 févr. 2009 à 14:38
https://c.developpez.com/faq/#NOMBRES_random_bornes
Basez-vous sur cette explication et vous devriez y arriver.
Basez-vous sur cette explication et vous devriez y arriver.
Dabron
Messages postés
27
Date d'inscription
lundi 16 février 2009
Statut
Membre
Dernière intervention
30 mars 2010
3
18 févr. 2009 à 14:40
18 févr. 2009 à 14:40
Merci pour vos réponses rapide, je vais essayer tout ca
bizu53
Messages postés
1274
Date d'inscription
samedi 30 août 2008
Statut
Membre
Dernière intervention
21 juin 2015
859
18 févr. 2009 à 14:43
18 févr. 2009 à 14:43
Le modulo est le reste de la division.
Donc si tu fais %10, tu vas te retrouver avec un nombre compris entre 0 et 9 (inclus).
Donc si tu veux entre 1 et 10 tu fais +1 derrière (mais au final je pense que tu t'en fous puisque tu fais les condition derrières donc ça ne change pas grand chose que tu fasses +1 avec ta condition par rapport à 5, ou ne pas faire +1 et faire ta comparaison par rapport à 4).
Sinon concernant l'aléatoire, il faut que tu initialises où tu te places dans ta liste de nombre pseudo-aléatoire en appelant la fonction srand(). La plupart du temps on l'appelle avec l'heure (en seconde) pour que ça soit différent d'une exécution à une autre.
Pour résumer
Juste derrière tes déclarations de variable :
srand(time(NULL));
Et dans ton code, récupère ta valeur dans un int (préalablement déclaré) :
toto = rand%10; (ou avec le +1)
Donc si tu fais %10, tu vas te retrouver avec un nombre compris entre 0 et 9 (inclus).
Donc si tu veux entre 1 et 10 tu fais +1 derrière (mais au final je pense que tu t'en fous puisque tu fais les condition derrières donc ça ne change pas grand chose que tu fasses +1 avec ta condition par rapport à 5, ou ne pas faire +1 et faire ta comparaison par rapport à 4).
Sinon concernant l'aléatoire, il faut que tu initialises où tu te places dans ta liste de nombre pseudo-aléatoire en appelant la fonction srand(). La plupart du temps on l'appelle avec l'heure (en seconde) pour que ça soit différent d'une exécution à une autre.
Pour résumer
Juste derrière tes déclarations de variable :
srand(time(NULL));
Et dans ton code, récupère ta valeur dans un int (préalablement déclaré) :
toto = rand%10; (ou avec le +1)
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 835
18 févr. 2009 à 16:32
18 févr. 2009 à 16:32
Salut,
Non pas de modulo pour éviter une proba non équiprobable. Il faut agir sur les bits de poids forts. Il faut réduire à l'aide de la multiplication division.
Non pas de modulo pour éviter une proba non équiprobable. Il faut agir sur les bits de poids forts. Il faut réduire à l'aide de la multiplication division.
bizu53
Messages postés
1274
Date d'inscription
samedi 30 août 2008
Statut
Membre
Dernière intervention
21 juin 2015
859
>
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
18 févr. 2009 à 16:36
18 févr. 2009 à 16:36
Si on veut chipoter oui je sais, moi je vais même jusqu'à me recoder une rand() quand j'en ai besoin. C'était simplement pour rester dans l'optique qu'on lui a apprise ;-)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Dabron
Messages postés
27
Date d'inscription
lundi 16 février 2009
Statut
Membre
Dernière intervention
30 mars 2010
3
18 févr. 2009 à 15:31
18 févr. 2009 à 15:31
Merci j'ai réussi ce que je voulait :)
Merci à vous.
Merci à vous.