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
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

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
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é ...
1
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
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
0
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
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...
0
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
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.
0

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
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;
		}
0