Forum Graph100

Forum Graph100

Vous n'êtes pas identifié.

Annonce

Bonjour et bienvenue sur le nouveau Forum Graph100 !
L'intégralité des données a été transférée sur un forum PunBB et tout les comptes sont fonctionnels avec le même nom d'utilisateur et mot de passe.
Un wiki est aussi disponible avec le même compte ! N'oubliez pas de remettre votre avatar, bon surf !
Pour plus d'informations, consultez ce post.

#1 03 Apr 2005 15:29:54

EpiCas
Membre
Lieu: ANDRESY (Yvelines)
Date d'inscription: 16 Feb 2005
Messages: 37

Fonction Rand en C

Bon j'ai compris comment ca marchait :
rand();
Cela renvoie un nombre entre 0 et 32767
Mais il faut un point de départ différent pour ne pas avoir toujours le même nombre!

Qu'est ce que je peux utiliser de bien pour srand();, point de départ de la séquence de nombres ? Il faut que cela soit le plus aléatoire possible.

Jusqu'a maintenant, j'ai essayé avec les minutes puis les secondes mais ca ne me convaint pas vraiment pour le systeme aléatoire.
(j'utilise la fonction de la librairie get_time de casio2.h)
Vous devez avoir une technique non?

voila le code :
main ()
{
int alea=0,nfond=0,tval=0;
tval=get_time(3)*10;
srand(tval);
alea=rand();
  if(alea<10922)nf=0;                                        //      1/3
  if(alea<=21844 && alea>=10922)nf=1;            //      1/3
  if(alea>21844)nf=2;                                       //       1/3
printf("%i",alea);
getch();
return(0);
}

Merci

Hors ligne

 

#2 04 Apr 2005 03:24:43

Azor
Le Coté Obscur De La G100
Lieu: glop glop!
Date d'inscription: 04 May 2002
Messages: 5479
Site web

Re: Fonction Rand en C

srand est une fonction qui pompe pas mal de code alors moi j'fait ça:

Code:

    unsigned char time_s;
    // Randomize pas cher
    asm in al, 0x1D;
    asm mov time_s, al
    for(; time_s; time_s--)
    {
        rand();
    }

Anciennement X-thunder28
Cats shall rule teh world!

Hors ligne

 

#3 04 Apr 2005 04:10:00

Julien
C++iste convaincu
Lieu: Waterloo (Be)
Date d'inscription: 29 May 2002
Messages: 1456
Site web

Re: Fonction Rand en C

Moi j'ai ça:

Code:

static ulong rand_next = 1;

void Randomize()
{
    uchar sec,min,hr;

asm {
    in al,0x1D
    mov sec,al
    in al,0x1E
    mov min,al
    in al,0x1F
    mov hr,al
    }

    rand_next = ((ulong)sec)<<16 + ((ulong)hr)<<8 + min;
}

uint Random(uint max)
{
    rand_next = rand_next * 1103515245 + 12345;
    return ((ulong) (rand_next / 0x10000) * max) >> 16;
}

Pensez à surveiller mes releases wink

Hors ligne

 

#4 05 Apr 2005 13:29:44

EpiCas
Membre
Lieu: ANDRESY (Yvelines)
Date d'inscription: 16 Feb 2005
Messages: 37

Re: Fonction Rand en C

ail moi qui était fier de ma fonction ran je fais moins le malin. (non sans dec, j'ai toujours su que c'était de la merde).
Bon je vais étudier vos petits bijoux.

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr