Générer des nombres

Signaler
Messages postés
215
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
21 août 2011
-
Messages postés
16
Date d'inscription
vendredi 28 octobre 2005
Statut
Membre
Dernière intervention
28 septembre 2006
-
bonjour,j'ai un problème j'ai cheché dans les sources sur ce site quelque chose qui pourai m'aider mais certaines sources sont trop compexe pour moi,je débute.

J'aimerai que mon programme génère des nombre de 1 à 50
au hasard j'ai essayé avec rand() mais je crois que mon code doit pas etre bien fait ou j'ai du faire une erreur car ca marchait pas !

Si quelqun aurai un bout de code pour m'aider ou une source ou autres...
ça me dépannerai bien merci et bon coding a tous.
@++ Norton

10 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
srand(); // init generateur avant nombre ou serie
alea = (rand() % 50) + 1;
voila entre 1 et 50.
ciao...
BruNews, Admin CS.
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
a propos de l'utilisation du % sur le rand, elle est acceptable si le rand genere des bits de poids faible aussi aleatoires que les bits de poids fort, et ca il parait que ca depend des implementation, alors comment le savoir?
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
suffit de garantir ainsi par exemple:
alea = ((rand() & 0xFFFF) % 50) + 1;
ciao...
BruNews, Admin CS.
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
(rand() & 0xFFFF ==> soit rand() "et" 111..1
mais ca change quoi?(j'ai pas trop compris)
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
c'est pas ce que tu voulais ?
Je pensais que les bits de poids forts genaient, donc je les enleve. Regarde que normalement c'est inutile car rand() genere sur la plage 0xFFFF.
ciao...
BruNews, Admin CS.
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
scuz je me suis mal fait comprendre, si on enleve les bits de poids fort ca va plus du tout

en gros sur certaine implementation recentes(je sai c'est vagues mais j'en sais pas plus)
le rand genres de nombres dont les bits de poids faibles sont aussi aleatoires que les bits de poids forts ==> donc la ca va
mais sinon rand genere des bits de poids forts plus aleatoires que les bits de poids faibles donc % a proscrire, il vaut mieux utiliser une division

ce que je ve savoir c'est sur quelles implementations le le rand() genere un nombre dont la partie faible est aussi aleatoire que la partie forte?(c'est peut etre pas sur mais on arrete pas de me repeter de ne jamais utiliser % sur rand)
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
Je sais seulement que sur VC++ le rand() a une implementation efficace sur la plage 0xFFFF et on peut donc employer le modulo sans probleme, alors je ne me preoccupe guere des machins exotiques.
ciao...
BruNews, Admin CS.
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
ok merci
Messages postés
241
Date d'inscription
mardi 29 octobre 2002
Statut
Membre
Dernière intervention
23 janvier 2006

solution ---> /dev/urandom sous Unix ou Linux...

Sinon je sais que le generateur aleatoire de Linux est efficace (au moins depuis la 2.0)... Et windows ca depend quelle version de VC++ et de l OS
Messages postés
16
Date d'inscription
vendredi 28 octobre 2005
Statut
Membre
Dernière intervention
28 septembre 2006

Bonjour à tous!


J'aimerai être aider un peu sur une programmation, je suis un débutant en C, et j'arrive pas à exécuter un programme. C'est un jeu de dés mais il faut demander le nom des joueur àprés désigné qui va jouer en premier en aléa.
et aussi le lancement de dé.Mais peu t-on utilisé quatre ariable (char); pour remplacer le nom des joueurs par des variables? exemple joueur x et joueur y, aprés aléa joueur x Joueur 1 et joueur y joueur 2 ou vice versa.
je sais pas si vous comprenais le delire.