Fonction aléatoire Dev c++

Fermé
LeBzul - 4 nov. 2008 à 00:32
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 4 nov. 2008 à 01:44
Bonjour,
je travaille en mode console sous DevC++, et j'aimerais remplir certaines case d'un tableau à 2 dimensions par une valeur unique, la "position" de cette valeur étant donné par la fonction aléatoire. Cette dernière tourne en boucle pour remplir le tableau petit à petit.

Pour faire cela, j'utilise la fonction rand(), mais le problème est qu'il me re-sort exactement les mêmes positions, dans le même ordre, a chaque fois que je relance mon programme.

Voila ce que j'ai fait :

hb=int(rand()%21)+1;
lb=int(rand()%30)+2;

ou :

hb = ((1 + (int) ((double) rand() * (21) / (RAND_MAX+1)))+1);
lb = ((1 + (int) ((double) rand() * (30) / (RAND_MAX+1)))+1);

Le soucis est le même dans les 2 cas.. :/

Une idée ?
A voir également:

1 réponse

Problème résolu ^^'' la prochaine fois je réfléchirais un peu plus :/
merci quand même :p
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 836
4 nov. 2008 à 01:44
Salut,
Lorsque tu résous un problème par toi-même, fais en profiter le forum ;)
Là en l'occurrence, j'imagine que c'est car tu avais oublié srand(time(NULL)).
Sinon, je te conseille ta deuxième formule pour l'utilisation d'un nombre pseudo aléatoire compris entre deux nombres.
La première formule ne donne pas rigoureusement la même probabilité d'apparitions des nombres.
Cdlt
0