Quelqu'un pour m'aider sur un algo. à la noix ?

WRInaute discret
Y'a des fois je vous jure, je me retourne la tête pour des conneries !

J'ai un tableau d'entiers genre array = ('2', '3', '4', ....)

J'essaye de retrouver une boucle de telle façon que je puisse afficher toutes les combinaisons possibles à partir d'une base 1.

Donc en fait je cherche tout simplement à faire afficher ceci :

1er niveau
1 + 2
1 + 3
1 + 4
1 + ...

2ième niveau
1 + 2 + 3
1 + 2 + 4
1 + 2 + ...
1 + 3 + 4
1 + 3 + ...

3ième niveau
1 + 2 +3 + 4
...

...ième niveau
1 + 2 + 3 + 4 + ...

comment faire une boucle là dessus ?

quand je pense que j'ai fais GEII :(
 
WRInaute discret
fabor a dit:
Est ce que l'ordre à une importance pour toi?
ie : 1 + 2 est-il équivalent à 2 + 1 ?
je préférerai garder l'ordre croissant des entiers...

je désespère je me demande si il y a une solution à ce truc finallement :(
 
WRInaute discret
bon encore une question pour etre sur de comprendre la problematique
est ce que tu peux avoir 1 + 4 + 3 +..
ou est ce que des que tu as 1 + y + .. il ne peux plus y avoir de x<y dans la suite de données
 
WRInaute accro
En gros :
prendre une boucle while qui incrémente le niveau et qui te permet d'afficher la base ;
dedans une boucle for initialisée sur le niveau et bornée par la taille de ta liste qui te donne le reste de ta série.
 
WRInaute occasionnel
Qu'est-ce que tu penses de ça ?
Code:
function afficheTableau($avant, $niveau, $tableau)
{
	if ($niveau == 1) {
		foreach ($tableau as $value) {
			echo "$avant$value<br>" ;
		}
		return ;
	}
	
	while ($val = array_shift($tableau)) {
		afficheTableau("$avant$val+",$niveau-1, $tableau) ;
	}
	return ;
}

$tableau = array(2, 3, 4, 5, 6, 7, 8) ;
$compteur = 2 ;
afficheTableau("1+",$compteur,$tableau) ;

ça donne :
Code:
pour compteur = 1 :
1+2
1+3
1+4
1+5
1+6
1+7
1+8

pour compteur = 2 :
1+2+3
1+2+4
1+2+5
1+2+6
1+2+7
1+2+8
1+3+4
1+3+5
1+3+6
1+3+7
1+3+8
1+4+5
1+4+6
1+4+7
1+4+8
1+5+6
1+5+7
1+5+8
1+6+7
1+6+8
1+7+8

pour compteur = 3 :
1+2+3+4
1+2+3+5
1+2+3+6
1+2+3+7
1+2+3+8
1+2+4+5
1+2+4+6
1+2+4+7
1+2+4+8
1+2+5+6
1+2+5+7
1+2+5+8
1+2+6+7
1+2+6+8
1+2+7+8
1+3+4+5
1+3+4+6
1+3+4+7
1+3+4+8
1+3+5+6
1+3+5+7
1+3+5+8
1+3+6+7
1+3+6+8
1+3+7+8
1+4+5+6
1+4+5+7
1+4+5+8
1+4+6+7
1+4+6+8
1+4+7+8
1+5+6+7
1+5+6+8
1+5+7+8
1+6+7+8

etc...

C'était bien ça ou j'ai compris de travers ?
 
Discussions similaires
Haut