Radom "homogène"
Résolu/Fermé
Piven
Messages postés
81
Date d'inscription
lundi 7 septembre 2009
Statut
Membre
Dernière intervention
27 février 2012
-
22 nov. 2010 à 16:20
Piven Messages postés 81 Date d'inscription lundi 7 septembre 2009 Statut Membre Dernière intervention 27 février 2012 - 22 nov. 2010 à 16:49
Piven Messages postés 81 Date d'inscription lundi 7 septembre 2009 Statut Membre Dernière intervention 27 février 2012 - 22 nov. 2010 à 16:49
5 réponses
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
22 nov. 2010 à 16:27
22 nov. 2010 à 16:27
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é ...
Piven
Messages postés
81
Date d'inscription
lundi 7 septembre 2009
Statut
Membre
Dernière intervention
27 février 2012
3
22 nov. 2010 à 16:31
22 nov. 2010 à 16:31
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
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
22 nov. 2010 à 16:35
22 nov. 2010 à 16:35
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...
Piven
Messages postés
81
Date d'inscription
lundi 7 septembre 2009
Statut
Membre
Dernière intervention
27 février 2012
3
22 nov. 2010 à 16:40
22 nov. 2010 à 16:40
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
Piven
Messages postés
81
Date d'inscription
lundi 7 septembre 2009
Statut
Membre
Dernière intervention
27 février 2012
3
22 nov. 2010 à 16:49
22 nov. 2010 à 16:49
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; }