Générer des nombres

cs_norton Messages postés 215 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 21 août 2011 - 21 janv. 2004 à 14:39
fandezizou Messages postés 16 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 28 septembre 2006 - 4 nov. 2005 à 13:45
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

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
21 janv. 2004 à 15:15
srand(); // init generateur avant nombre ou serie
alea = (rand() % 50) + 1;
voila entre 1 et 50.
ciao...
BruNews, Admin CS.
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
21 janv. 2004 à 20:45
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?
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
21 janv. 2004 à 20:53
suffit de garantir ainsi par exemple:
alea = ((rand() & 0xFFFF) % 50) + 1;
ciao...
BruNews, Admin CS.
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
21 janv. 2004 à 21:01
(rand() & 0xFFFF ==> soit rand() "et" 111..1
mais ca change quoi?(j'ai pas trop compris)
0

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

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
21 janv. 2004 à 21:10
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.
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
21 janv. 2004 à 21:37
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)
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
21 janv. 2004 à 21:52
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.
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
21 janv. 2004 à 21:57
ok merci
0
MetalDwarf Messages postés 241 Date d'inscription mardi 29 octobre 2002 Statut Membre Dernière intervention 23 janvier 2006
25 avril 2004 à 15:38
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
0
fandezizou Messages postés 16 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 28 septembre 2006
4 nov. 2005 à 13:45
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.
0
Rejoignez-nous