Srand(time(NULL)) accéléré???

guitoontruant Messages postés 316 Statut Membre -  
guitoontruant Messages postés 316 Statut Membre -
Bonjour,

J'ai créé une fonction aléatoire grace à srand(time(NULL)); mais je voudrais qu'il augmente sa fréquence de calcul.

Est-ce possible?
A voir également:

3 réponses

blux Messages postés 4934 Date d'inscription   Statut Modérateur Dernière intervention   3 367
 
Salut,

qu'entends-tu par augmenter la fréquence de calcul ? aller plus vite ?
0
guitoontruant Messages postés 316 Statut Membre 53
 
Oui, c'est ça, car j'ai besoin d'effectuer un calcuol statistique en faisant varier les coordonnées des points à l'intérieur d'un cercle.

Seulement mon programme s'effectue trop rapidement et les valeurs données par ma fonction aléatoire sont finalemnt toujours les mêmes.
0
blux Messages postés 4934 Date d'inscription   Statut Modérateur Dernière intervention   3 367
 
J'ai pas trop compris ta demande : tu veux aller plus vite ou avoir d'autres valeurs ?

Tu as un échantillon de combien pour tomber sur les mêmes valeur ? ou alors c'est ton time(null) qui ne renvoie pas une valeur correcte au srand...
0
guitoontruant Messages postés 316 Statut Membre 53
 
J'ai testé mon srand à part, il fonctionne bien si on lui fait une demande bien espacé dans le temps.

J'ai ça:

int aleat()
{
int ch1;
srand (time (NULL));
ch1=rand()%2;
if(ch1==0)
ch1=-1;
return ch1;
}

int aleatbis()
{
int ch2;
srand(time (NULL));
ch2=rand()%100;
return ch2;
}

[...]
a1[0]=amax[0];
a1[1]=amax[1];
negoupos=aleat();
random=aleatbis();
random/=100;
printf("%d %f",negoupos,random);
a1[0]=a1[0]+(negoupos*random*inca);
negoupos=aleat();
random=aleatbis();
random/=100;
a1[1]=a1[1]+(negoupos*random*inca);

Seulement, mes fonctions aleat et aleatbis renvoit la même chose car je suppose que mon programme va plus vite que mon srand
0
blux Messages postés 4934 Date d'inscription   Statut Modérateur Dernière intervention   3 367
 
Moi je n'initialiserai pas ma fonction rand à chaque appel, mais au début du programme, me contentant d'en lire les valeurs dans les fonctions... c'est peut-être ça qui coince, elle sont initialisées avec la même valeur.

Ce n'est pas ton programme qui va plus vite que ton rand, c'est ton programme qui s'exécute dans la même fraction de time... Tu as peut-être accès à la msec voir à la µsec en C...
0
guitoontruant Messages postés 316 Statut Membre 53
 
OK je vais essayer demain et je te dirai quoi.

En tout cas, merci beaucoup.
0