Algo d'affichage de possibilités

sp4cezolk Messages postés 8 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 27 mai 2004 - 13 mai 2004 à 01:54
peterklm Messages postés 15 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 5 décembre 2005 - 5 déc. 2005 à 22:10
Salut tout le monde je suis en train de chercher un algo qui me permettrait d'afficher toutes les combinaisons de chiffres possibles pour un chiffre passé en paramètre.

Je m'explique. Par exemple, pour combi(3) , ca donnerait :

1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1

Mon but ultime c'est que ca fonctionne pour
combi(10)
Voila Voila. Merci d'avance à tous pour vos réponses.

2 réponses

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
13 mai 2004 à 11:36
une piste parmis d'autres :
une fonction récursive qui prend en paramètres 2 tableaux et leurs taille respective (tab1, size1) et (tab2, size2)

tab1 sera les nombres déjà placé de la permuttation actuelle et tab2 les nombres restants à placer.

- récurrence :
pour chaque élément de tab2, construire 2 nouveaux tableaux :
tab11 : concaténation de tab1 et tab2[i] => taille size1+1.
tab22 : tous les éléments de tab2 sauf tab2[i] => taille size2-1.
appelée la fonction récursive avec ces nouveaux tableaux.

- lorsque la fonction est appelée avec size2=0, c'est fini, il suffit d'afficher tab1.

le début commence par :
tab = {1,2,3,4};
Perm(NULL, 0, tab, 4);

il sufiit de faire attention aux cas ou les tableaux passés sont nuls (taille=0, au début et à la fin de la récursion) pour construire les nouveaux tableaux.
0
peterklm Messages postés 15 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 5 décembre 2005
5 déc. 2005 à 22:10
salut,
je suis tres interessé par la marche à suivre sur l'algo qui permet d'afficher toutes les combinaisons possibles, selon les nombres voulus. Compte tenu que je suis debutant dans la matière. Aurais tu le temps et le desir bien sûr, de nous faire un court programme qui realise cette tache, cela profitera à pas mal des gens comme moi.
En te remerciant bcp à l'avance.
0
Rejoignez-nous