Fonction random pas vraiment random
mony84
Messages postés
75
Statut
Membre
-
scriptiz Messages postés 1494 Statut Membre -
scriptiz Messages postés 1494 Statut Membre -
bonjour,
j'ai ce bout de code pour générer la position (x,y) initiale des plusieurs noeuds dans un réseau de télécom.
je ne comprends pas pourquoi j'obtiens toujours les mêmes valeurs (383 ,886) , alors que c'est supposé être une fonction donnant des valeurs aléatoires.
j'ai ce bout de code pour générer la position (x,y) initiale des plusieurs noeuds dans un réseau de télécom.
for (i=0;i<NETWORK_SIZE;i++){
TheNetwork.nodes[i].pos_x = (float)(random() % FIELD_SIZE_X);
TheNetwork.nodes[i].pos_y = (float)(random() % FIELD_SIZE_Y);
}
je ne comprends pas pourquoi j'obtiens toujours les mêmes valeurs (383 ,886) , alors que c'est supposé être une fonction donnant des valeurs aléatoires.
A voir également:
- Fonction random pas vraiment random
- Chat random - Accueil - Réseaux sociaux
- Random. chat - Accueil - Réseaux sociaux
- Random MixTape Maker - Télécharger - Lecture & Playlists
- Random pc freeze - Guide
- Random Password Generator - Télécharger - Sécurité
1 réponse
Générallement il faut initialiser le randomizer sans quoi il est souvent initialiser à une valeur par défaut et donc il te tire la même suite de nombre "aléatoires".
Une bonne façon de faire c'est d'initialiser le randomizer sur le timestamp actuel (nombre de secondes écoulées depuis le 1er janvier 1970 dans la plupart des cas).
Après je ne sais pas quel langage tu utilises mais une recherche sur google te donnera plus d'infos pour initialiser ton randomizer avant d'appeller la méthode random().
Une bonne façon de faire c'est d'initialiser le randomizer sur le timestamp actuel (nombre de secondes écoulées depuis le 1er janvier 1970 dans la plupart des cas).
Après je ne sais pas quel langage tu utilises mais une recherche sur google te donnera plus d'infos pour initialiser ton randomizer avant d'appeller la méthode random().
j'utilise c++ comme langage de prgrammation
Exemple d'un petit programme :
/* rand example */ #include <stdio.h> #include <stdlib.h> #include <time.h> int main () { int number; /* initialize random seed: */ srand ( time(NULL) ); /* generate a random number: */ number = rand() % 10 + 1; /* here you may do your stuff with the random number */ return 0; }N'oublie donc pas le #include <time.h> car on s'en sert pour initialiser le randomizer dans la fonction srand() ;)
Bonne continuation.