Generer un nombre aleatoir en C

cs_Snoupy Messages postés 10 Date d'inscription vendredi 20 février 2004 Statut Membre Dernière intervention 11 janvier 2006 - 20 févr. 2004 à 21:05
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 - 21 févr. 2004 à 03:19
Salut à tous, j'ai besoin de générer plusieur nombre aleatoir, mais la source que j'utilise, m'oblige à attendre une seconde entre chaque nombre, car elle est basé sur l'heur system.
voici la source:

static int aleatoir()
{

int Chiffre;
srand ((unsigned)time (0));
Chiffre=rand();
sleep(1000);

return Chiffre;

}

Alors si quelqu'un pouvait m'aider, merci d'avance.

6 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
20 févr. 2004 à 21:13
sleep(1000);
Te suffit de l'enlever, a quoi sert-il ???

srand ((unsigned)time (0));
Devrait se trouver 1 seule fois au debut du prog et basta.

var = rand();
direct dans le code sans appel de fonction en plus.

ciao...
BruNews, Admin CS, MVP Visual C++
0
cs_Snoupy Messages postés 10 Date d'inscription vendredi 20 février 2004 Statut Membre Dernière intervention 11 janvier 2006
20 févr. 2004 à 21:32
sleep(1000) permet justement d'attendre une seconde, si je l'enlève tout mes nombres aleatoirs seront identiques car ma commande est basé sur l'heur system mais uniquement au niveau des secondes, je dois donc attendre une seconde entre chaque pour en avoir un différent.

Mais si tu pouvais me filer une source complete pour generer des nombres aleatoirs qui ne soit pas basé sur les secondes, mais sur les millisecondes.

Merci d'avance
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
20 févr. 2004 à 21:40
Mais non, si tu suis TOUT ce que j'ai mis au dessus, tu ne generes pas des nombres identiques.

void main()
{
srand ((unsigned)time (0)); // 1 SEULE FOIS

// ... instructions
var1 = rand();

// ... instructions
var2 = rand();

}

ciao...
BruNews, Admin CS, MVP Visual C++
0
cs_Snoupy Messages postés 10 Date d'inscription vendredi 20 février 2004 Statut Membre Dernière intervention 11 janvier 2006
20 févr. 2004 à 21:49
Désolé, effectivement, ça marche.
Merci encore
0

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

Posez votre question
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
20 févr. 2004 à 22:24
Sinon au lieu de time, tu peux fair GetTickCount, ca te en donne le temps en ms depuis le demarache de Windows (ou du PC je ne saius plus)
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
21 févr. 2004 à 03:19
oui, mais avec time on reste portable (ca depend de ce qu'on veut faire)
0
Rejoignez-nous