Problème avec les nombres aléatoires

nisaloncaje Messages postés 154 Date d'inscription samedi 7 janvier 2006 Statut Membre Dernière intervention 28 septembre 2008 - 14 janv. 2006 à 22:13
ctx_man Messages postés 285 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 20 janvier 2013 - 15 janv. 2006 à 18:27
Bonjour, j'ai un petit problème : dans un programme , pour générer un nombre aléatoire je fais ceci :

int n,max=50,liste[15];
for(i=0;i<15;i++) {
srand(time(0));
liste[i] = (rand() % max);
}
// On affiche la liste

et le seul problème c'est que si je lance le programme deux fois avec un intervalle très réduit (1 a 2 secondes), ca m'affiche deux fois la meme liste : il y a un problème avec la fonction aléatoire.


Comment résoudre ce problème


Je vous remercie d'avance de vos conseils

7 réponses

Galmiza Messages postés 573 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 9 avril 2008 1
14 janv. 2006 à 22:43
srand(time(NULL));

au debut du programme.
0
rrk275 Messages postés 540 Date d'inscription vendredi 25 juin 2004 Statut Membre Dernière intervention 1 octobre 2007 2
14 janv. 2006 à 23:27
Je dirais meme on n'as besoin de d'un seul appel...
0
ctx_man Messages postés 285 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 20 janvier 2013 3
15 janv. 2006 à 02:50
Si tu veux changer ton srand dans un intervalle inferieur à 1 seconde, il vaut mieux utiliser un truc genre GetTickcount() qui renvoit le nombre de ms écoulées depuis le démarrage du system.
int n, max=50, liste[15];
srand(GetTickCount()); //le srand doit pas etre fait avant chaque rand()
//mais plutot avant chaque liste de nombre aleatoire.
for(i=0;i<15;i++)
{
liste[i] = (rand() % max);
}
0
nisaloncaje Messages postés 154 Date d'inscription samedi 7 janvier 2006 Statut Membre Dernière intervention 28 septembre 2008
15 janv. 2006 à 10:37
d'accord, mais dites moi juste dans quelle librairie puis je trouver
GetTickCount() .
0

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

Posez votre question
ctx_man Messages postés 285 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 20 janvier 2013 3
15 janv. 2006 à 12:41
#include <windows.h>
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
15 janv. 2006 à 12:44
Autant utiliser srand(time(NULL)); si tu n'utilise pas windows.h pour autre chose
0
ctx_man Messages postés 285 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 20 janvier 2013 3
15 janv. 2006 à 18:27
oui c sur
0
Rejoignez-nous