remplir un tableau sans doublons ...
bonjour,
je suis en plein apprentissage mais je patauge : lors de mon cours (algorithmie) l'on nous a demandé de remplir un tableau de facon aleatoire (jusque-la ok ) mais sans aucun doublons, alors la ... 8O .
je viens d' y passer 5 heures mais je n'ai pas encore les connaissances necessaires.ceci dit j'ai horreur de ne pas comprendre donc si vous pouviez m'aiguiller ou m'expliquer svp.
voila ce que j'ai fait pour l'instant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
# include <stdio.h>
# include <stdlib.h>
int tab[9];
int i=0;
main() {
do {
tab[i] = rand()%10;
printf ("\nvaleur %d : %d", i, tab[i]) ;
i++;
} while ( i<10 );
printf("\n\n");
} |
autre chose , j'avais commencé par une boucle for mais je declare un tableau avec 10 emplacements et cela s'arrete au 9 ieme :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| # include <stdio.h>
# include <stdlib.h>
int tab[9];
int i;
main() {
for (i=0; i<9; i++){
tab[i]=rand()%10;
printf("\nLigne %d : %d", i, tab[i]);
}
printf("\n");
} |
la sortie du premier :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
ryo@LFS ~ $ ./test
valeur 0 : 3
valeur 1 : 6
valeur 2 : 7
valeur 3 : 5
valeur 4 : 3
valeur 5 : 5
valeur 6 : 6
valeur 7 : 2
valeur 8 : 9
valeur 9 : 1 |
celui du deuxieme :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
ryo@LFS ~ $ ./test2
Ligne 0 : 3
Ligne 1 : 6
Ligne 2 : 7
Ligne 3 : 5
Ligne 4 : 3
Ligne 5 : 5
Ligne 6 : 6
Ligne 7 : 2
Ligne 8 : 9 |
desole si cela a deja poste , j'ai bien chercher une dizaine de pages et via le moteur mais je n'ai rien trouve.
merci par avance.
ps : ah oui , je ne retourne pas en cours avant deux semaines, c'est pour eviter ma desiocialisation que je poste :D
Re: remplir un tableau sans doublons ...
tout d'abord bienvenu à toi sur le forum de developpez :)
Citation:
Envoyé par ryo-san
bonjour,
je suis en plein apprentissage mais je patauge : lors de mon cours (algorithmie) l'on nous a demandé de remplir un tableau de facon aleatoire (jusque-la ok ) mais sans aucun doublons, alors la ... 8O .
je viens d' y passer 5 heures mais je n'ai pas encore les connaissances necessaires.ceci dit j'ai horreur de ne pas comprendre
je connais ça :wink:
Citation:
donc si vous pouviez m'aiguiller ou m'expliquer svp.
si c'est demandé aussi poliment....
alors en fait je pense que à chaque fois que tu tire un nombre au hasard,tu dois d'abord t'assurer qu'il ne figure pas déja dans le tableau avant de l'y inserer(tu parcours ton tableau en comparant chaque elemnt avec ton nombre),si il n'y figure pas alors tu l'insere dans le tableau,si non tu tire un autre nombre aleatoire et tu refait la meme chose.
voilà pour la partie algorithmie,MAIS il y a tout de mème un petit problème c'est que en theorie,cet algorithme peut tourner indefiniment vu que rand() peut donner un nombre dejà present dans le tableau une infinité de fois.En pratique je sais pas mais je pense que ça ira.
voilà,je te laisse le soin d'implementer tout ça.
Si tu n'y arrive pas n'hesite pas à poster :wink:
Re: remplir un tableau sans doublons ...
Citation:
Envoyé par afrikha
MAIS il y a tout de mème un petit problème c'est que en theorie,cet algorithme peut tourner indefiniment vu que rand() peut donner un nombre dejà present dans le tableau une infinité de fois.En pratique je sais pas mais je pense que ça ira.
Ca peut arriver mais la probabilité est nulle (autrement dit, tu as beaucoup plus de chances de gagner 1000 fois de suite au loto que de voir ça se produire).
A part ça, je rejoins Afrikha en tous points.
Médinoc : en l'occurence, X = Y = 10. Comment mélanges-tu tes tableaux (étape 2), à part en refaisant ce qu'Afrikha a dit (ou équivalent) ?