cpp - generer un nombre aleatoirement? probleme - C++ - Programmation
Marsh Posté le 18-06-2003 à 17:22:26
http://dejean.benoit.free.fr/rand.c.html (version C)
http://dejean.benoit.free.fr/rand.cpp.html (version C++)
Marsh Posté le 18-06-2003 à 23:50:38
Code :
|
tu es sur que ce soit bien correct en C ?
Marsh Posté le 19-06-2003 à 00:08:02
pour le const, non, par contre le reste est tout à fait légal
Marsh Posté le 19-06-2003 à 00:17:55
sauf le cas pas de chance ou N prends zero, malloc retourne alors NULL... fodrait que je réécrives tout ça
Marsh Posté le 19-06-2003 à 00:32:30
non mais c meme sur =)
mais bon visual C de micro application, ça a l'air sympa apparement
Marsh Posté le 19-06-2003 à 00:45:31
C99 ça vous dit quelque chose? c'est pas parce que VC à plusieurs années qu'il faut utiliser une aussi vieille version de gcc
Marsh Posté le 19-06-2003 à 00:47:52
tagueule.
je prend la version de gcc que je veux et ta norme pourri j'en ai rien a foutre.
Marsh Posté le 19-06-2003 à 00:48:32
Bah en fait, moi qd ça compile pas je modifie les sources, je change pas de compilateur.
Un prog qui compile partout c qd mm plus "portable"
Marsh Posté le 19-06-2003 à 00:49:26
non le mieux c'est de faire du code qui se compile que sur ton pc
Marsh Posté le 19-06-2003 à 01:02:37
vous voulez je vous mail le draft du C99 (qui date de 99 evidemment?)
quand vous aurez fini vos conneries... const fait partie de l'ANSI, la seule chose C99 de mon code c'est les déclarations de variables partout. vous etes gonflant... j'ai ecris ce truc y a bien 2 ans, et y avait déjà le support de C99 dans gcc. je sais que tout le monde peut pas avoir un gcc-3.3 ultra récent, mais tout le monde peut se procurer un 3.2.
et pour votre info Linux compilera bientot plus avec gcc < 3
Marsh Posté le 19-06-2003 à 01:19:47
non on est pas gonflant, je peux pas compiler ton code source de merde avec ma version foireuse de gcc =)
ca te fais quoi de mettre toutes les variables au debut ?
moi ca m'evite d'avoir a modifier les sources toi ca te change rien
Marsh Posté le 19-06-2003 à 01:21:11
c'est quoi ce bordel, 'jai jamais forcé personne à compiler mon code.... je retourne pondre des modules C pour Python, la bas, la communauté apprécie le C99 comme gage de qualité. a bon entendeur...
Marsh Posté le 19-06-2003 à 04:36:18
Pour repondre a la question du monsieur, visiblement il fait un srand a chaque tour de boucle, ce qui expliquerait ces changements periodiques.
Le srand doit etre declare "en debut" de programme et il ne faut plus y toucher. Si tu en fais une utilisation serieuse/poussee, change de generateur, le standard est mauvais (google mersenne twister, tu auras un generateur valable).
Marsh Posté le 19-06-2003 à 11:50:40
Mais non il n'est pas mauvais le srand ... il faut initialiser en début de programme la 'pile' random en utilisant randomize ... sinon on a tjs la meme pile et donc tjs les memes nombres.
ex:
randomize();
int number=random(40)+1;
etc
.
.
.
cordialement, alt3.
Marsh Posté le 19-06-2003 à 12:52:21
darkalt3 a écrit : Mais non il n'est pas mauvais le srand ... il faut initialiser en début de programme la 'pile' random en utilisant randomize ... sinon on a tjs la meme pile et donc tjs les memes nombres. |
Il se trouve dans quel header randomize?
Marsh Posté le 19-06-2003 à 13:07:58
Citation : c'est quoi ce bordel, 'jai jamais forcé personne à compiler mon code.... |
non mais coupe internet chez toi hein, tu risques de te faire du mal
Marsh Posté le 19-06-2003 à 13:44:02
gogoprog a écrit : |
hop: stdlib.h
(de rien)
Marsh Posté le 19-06-2003 à 14:40:27
darkalt3 a écrit : Mais non il n'est pas mauvais le srand ... il faut initialiser en début de programme la 'pile' random en utilisant randomize ... sinon on a tjs la meme pile et donc tjs les memes nombres. |
...
C'est exactement ce que je viens de dire... Sauf que toi tu lui files un generateur qui n'est pas forcement mieux et qui est apparemment non standard
Marsh Posté le 19-06-2003 à 14:51:33
Angel_Dooglas a écrit : |
Pas forcément mieux, je te l'accorde à 100%.
Mais non standard ? stdlib ? je ne comprends pas
Marsh Posté le 19-06-2003 à 14:52:45
ben les OS se gène pas pour rajouter des tas de truc dans les entetes standards
Marsh Posté le 19-06-2003 à 14:59:39
++Taz a écrit : ben les OS se gène pas pour rajouter des tas de truc dans les entetes standards |
Bah oui mais randomize(), on la trouve dans le k&r non ?
Marsh Posté le 19-06-2003 à 15:04:07
darkalt3 a écrit : |
srand() pour la graine et rand() pour la generation.
Marsh Posté le 19-06-2003 à 15:12:51
Reply
Marsh Posté le 18-06-2003 à 12:15:25
bonjour,
jai besoin de genrer un nombre aleatoirement dans une boucle.
Jutilise ceci pour faire le nombre :
srand((unsigned) time(NULL));
iNombre=rand() % 16;
mais le nombre est pa tres aleatoire... (tres repetitif, apres avoir changé 3x il reste le meme...)
Bref ca marche pas au point.
Que dois-je faire?