Generer un nombre aleatoir en C

cs_Snoupy 10 Messages postés vendredi 20 février 2004Date d'inscription 11 janvier 2006 Dernière intervention - 20 févr. 2004 à 21:05 - Dernière réponse : cs_djl 3011 Messages postés jeudi 26 septembre 2002Date d'inscription 27 novembre 2004 Dernière intervention
- 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.
Afficher la suite 

6 réponses

Répondre au sujet
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 20 févr. 2004 à 21:13
0
Utile
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++
Commenter la réponse de BruNews
cs_Snoupy 10 Messages postés vendredi 20 février 2004Date d'inscription 11 janvier 2006 Dernière intervention - 20 févr. 2004 à 21:32
0
Utile
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
Commenter la réponse de cs_Snoupy
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 20 févr. 2004 à 21:40
0
Utile
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++
Commenter la réponse de BruNews
cs_Snoupy 10 Messages postés vendredi 20 février 2004Date d'inscription 11 janvier 2006 Dernière intervention - 20 févr. 2004 à 21:49
0
Utile
Désolé, effectivement, ça marche.
Merci encore
Commenter la réponse de cs_Snoupy
cs_JCDjcd 1138 Messages postés mardi 10 juin 2003Date d'inscription 25 janvier 2009 Dernière intervention - 20 févr. 2004 à 22:24
0
Utile
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)
Commenter la réponse de cs_JCDjcd
cs_djl 3011 Messages postés jeudi 26 septembre 2002Date d'inscription 27 novembre 2004 Dernière intervention - 21 févr. 2004 à 03:19
0
Utile
oui, mais avec time on reste portable (ca depend de ce qu'on veut faire)
Commenter la réponse de cs_djl

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.