Radom "homogène"
Résolu
Piven
Messages postés
81
Date d'inscription
Statut
Membre
Dernière intervention
-
Piven Messages postés 81 Date d'inscription Statut Membre Dernière intervention -
Piven Messages postés 81 Date d'inscription Statut Membre Dernière intervention -
Bonjour, voici mon problème: Je dois placer n cellule aléatoirement dans un tableau de dimensions xy, et j'aimerais que les cellules soient placés de manière homogène. Et je ne trouve pas de formule pour que ça soit homogène, c-à-d qu'il n'y est pas une chance sur 2 jusqu'a ce qu'elles soient toutes placés. Je sais pas si je me fait bien comprendre... Dans tout les cas merci de votre aide.
5 réponses
je te proposerai plutot de passer par un tableau temporaire (voir meme une liste chainée) pour brasser d'abord tes nombres, tu fais plusieurs cycles de brassages, et ensuite tu parcours ton tableau de manière "linéaire" pour les placer ...
je suis pas sur de m'être bien exprimé ...
je suis pas sur de m'être bien exprimé ...
En gros faire un pré-traitement en faisant les randoms sur les coordonnées n fois en vérifiant la non redondance puis seulement ensuite construire mon tableau? Bonne idée, mais du coup je suis obligé de revoir pas mal de trucs puisqu'en faite je n'avais pas de structure pour stocker mes données, tout était graphique >_< Mais au moins ça sera homogène. Merci
C'est une idée comme ca, à froid. Ce n'est surement pas la meilleur, ni la plus applicable à ton code existant, mais c'est jsute ce qui m'est venu à l'esprit.
Mais en gros, t'as bien comprit le truc: faire un pré-traitement pour remplir le tableau... Par cotnre, faire attention avec l'utilisation de la fonction random par défaut, je sais plus si c'est sous VB ou C++, j'avais du faire des modifs ou mettre des tempo dessus car c'était indexé sur l'horloge, donc si je sortais les valeurs trop vites, c'était toujours les memes valeurs qui sortaient... Bon, de toute facon, un "vrai" random n'existe pas sur un ordinateur car tout comportement d'un ordinateur est sencé être prévisible...
Mais en gros, t'as bien comprit le truc: faire un pré-traitement pour remplir le tableau... Par cotnre, faire attention avec l'utilisation de la fonction random par défaut, je sais plus si c'est sous VB ou C++, j'avais du faire des modifs ou mettre des tempo dessus car c'était indexé sur l'horloge, donc si je sortais les valeurs trop vites, c'était toujours les memes valeurs qui sortaient... Bon, de toute facon, un "vrai" random n'existe pas sur un ordinateur car tout comportement d'un ordinateur est sencé être prévisible...
Oui je me suis déjà heurté à ce problème, il suffit de changer la graine avant chaque random en C/C++ et php il me semble. Vu que je programme en C, je m'en sortirais :) Merci de ton aide.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Si ça peux aider quelqu'un, voici le bout de code que j'obtiens avec cette optique avec un tableau initialisé à 0 et ou les cellules sont représenté par des 1:
for (i=0;i<nbcel;i++){ do{ srand ( time(NULL) ); xtemp = rand() % (x+1); srand ( time(NULL) ); ytemp = rand() % (y+1); } while (tabcel[xtemp][ytemp]!=0) tabcel[xtemp][ytemp]=1; }