Nombres aléatoires en c++

johanb Messages postés 33 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 19 mai 2006 - 22 oct. 2003 à 20:10
garslouche Messages postés 583 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 29 mai 2015 - 23 oct. 2003 à 08:18
bonjour a tous, voici mon problême.Dans un programme, je dois générer deux fois un nombre aléatoire entre 0 et n (appelé max dans le programme). Voici a peu près le code que j'utilise:

#include
#include <stdlib.h> //pour utiliser rand()
#include <time.h>

void main()
{
int nombre;
int max;//
srand((unsigned)time(NULL));

max=1000;

nombre=rand()*max/RAND_MAX;

}

c'est pour le moment la meilleure façon que j'ai trouvée.Malheuresement, sur un petit nombre de générations aléatoires, l'étendue de ces nombres n'est pas très importante. Par exemple,si on défini max=1000, on devrait avoir des nombres entre 0 et 1000 assez "dispatchés"; or moi par exemple j'obtient des valeurs du genre 58,160,210,250,45,7...et pas de valeurs comme 901,675...

J'ajoute que quand j'utilise le code seul dans un fichier .cpp la génération est très bien, mais dans mon programme, c'est pas du tout le cas.
Si au besoin il faut le code source, je le donnerai

Merci a tous

2 réponses

Anacr0x Messages postés 515 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 27 avril 2006 2
22 oct. 2003 à 20:29
En générale, pour avoir des nombres aléatoire dans un intervalle, on fait come ca

nombre=rand() % max;

Je sais pas si ca va changer grand chose mé bon
0
garslouche Messages postés 583 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 29 mai 2015 1
23 oct. 2003 à 08:18
J'ajouterais que le max n'est jamais atteint !
0
Rejoignez-nous