Combinaison des valeurs d'un tableau

Bonjour à tous,

j’ai un problème d’algo …

en gros j’ai un tableau qui contient des valeurs, disons : A B C D

j’aurais besoin à la fin de mon algo me retrouver avec ces valeurs :

A
B
C
D
AB
AC
AD
BC
BD
CD
ABC
ABD
ACD
BCD
ABCD

en gros toute les combinaisons possibles sans doublons (si AB est affiché, BA ne doit pas l’être)

Merci à tous ceux qui auront le courage de m’aider :slight_smile:

Arnaud

J’imagine une fonction récursive qui prends en paramètre le préfixe de la combinaison et le tableau des lettres restantes.
Elle affiche le préfixe (sauf s’il est vide) et si tableau non-vide, tant que le tableau n’estt pas vide : retire la première lettre du tableau, l’ajoute au préfixe et s’appelle récursivement.
Ce qui donnerait quelque chose comme :

- appel avec "" & ["A", "B", "C", "D"]
	- n'affiche rien
	- appel avec "A" & ["B", "C", "D"]
		- affiche "A"
		- appel avec "AB" & ["C", "D"]
			- affiche "AB"
			- appel avec "ABC" & ["D"]
				- affiche "ABC"
				- appel avec "ABCD" & []
					- affiche "ABCD"
	- appel avec "B" & ["C", "D"]
		- affiche "B"
		- appel avec "BC" & ["D"]
			- affiche "BC"
			- appel avec "BCD" & []
				- affiche	"BCD"
	- appel avec "C" & ["D"]
		- affiche "C"
		- appel avec "CD" & []
			- affiche "CD"
	- appel avec "D" & []
		- affiche "D"

Plus qu’à l’adapter un petit peu pour arriver à avoir “AC”, “AD”, “BD”, “ABD”, “ACD”
Edité le 30/11/2009 à 02:31

Merci Raynor :wink:

pour ceux qui sont interessés par la réponse : www.siteduzero.com…

par récursion, ya les code prolog php et Ocaml + l’algo en francais :wink:

ciao