Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
775 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [algo] Toutes les combinaisons d'un tableau à 2 dimensions?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[algo] Toutes les combinaisons d'un tableau à 2 dimensions?

n°2116527
Daxorp
Posté le 13-12-2011 à 17:42:35  profilanswer
 

Bonjour,
Ça parait facile, mais c'est un vrai casse-tête! :cry:  
J'ai un tableau dont chaque case contient un tableau, on ne sait bien sûr pas le nombre de cases dans les 2 cas. Je n'ai besoin que des n° de case mais je dois écrire toutes les combinaisons possibles.
 
 
Exemple, un print_r() donne pour le tableau d'entrée:
 
Array
(
    [1] => Array
        (
            [1]
            [2]
        )
 
    [2] => Array
        (
            [1]
            [2]
            [3]
            [4]
            [5]
        )
 
    [3] => Array
        (
            [1]
        )
 
    [4] => Array
        (
            [1]
            [2]
        )
)
 
 
Résultat recherché:
1,1,1,1
2,1,1,1
1,2,1,1
1,3,1,1
1,4,1,1
1,5,1,1
1,2,1,2
1,3,1,2
1,4,1,2
....
en tout 20 combinaisons possibles puisque 2*5*1*2 éléments...  :sweat:


Message édité par Daxorp le 13-12-2011 à 17:43:03

---------------
Daxorp - Portail Kiao
mood
Publicité
Posté le 13-12-2011 à 17:42:35  profilanswer
 

n°2116603
rengzehn
Posté le 14-12-2011 à 10:48:37  profilanswer
 

fonctions récursives, 3 lignes. tu connais ?  c une fonction qui s'appelle elle même.
en gros elle reçoit un tableau et une chaine.
a chaque boucle, le tableau doit depiler, la chaine doit empiler et faut une condition pour s'arreter :D


Message édité par rengzehn le 14-12-2011 à 10:49:07
n°2116672
Daxorp
Posté le 14-12-2011 à 19:22:59  profilanswer
 

Je pensais bien à quelque chose dans ce goût-là, mais je n'arrive à rien.
Je suis plutôt parti dans le sens de faire x chaines dans un tableau s'il faut x combinaisons, et de remplir ces x chaines au fur et à mesure. C'est moins propre mais je n'arrive pas autrement! :sweat:


---------------
Daxorp - Portail Kiao
n°2116708
Trap D
Posté le 14-12-2011 à 22:16:22  profilanswer
 

Essaie ça :
Soit LEN la longueur du grand tableau Tab.
On crée un tableau Index de la taille Len qui contiendra les indices courants des differents sous tableaux du tableau principal Tab
Ce tableau Index est intialisé à 0 (si les indices de tableaux dans ton langage commencent à 0).
n sera l'indice courant dans le tableau Index.

debut
 n <- 0
 tant que n est strictement inférieur à LEN faire
  afficher la combinaison courante
  Incrémenter Index[n] de 1
  tant que N est strictement inférieur à LEN && Ind[n] est égal à la taille de Tab[n] faire
   Ind[n] reçoit 0
   incrémenter n de 1
   si n est strictement inférieur à LEN alors
    incrémenter Ind[n] de 1
   finsi
  fin tant que
  si n est strictement inférieur à LEN alors
   n reçoit 0
  fin si
 fin tant que
fin


Message édité par Trap D le 14-12-2011 à 22:17:12
n°2116733
rengzehn
Posté le 15-12-2011 à 08:33:41  profilanswer
 

voici un exemple de fonction recursive :

Code :
  1. function combi($a,$s)
  2. {
  3.   // pour chaque premier sous-tableau
  4.   foreach ( current($a) as $val )
  5.     // si on est a la fin de l'arbre on ecrit la ligne
  6.     if ( count($a) === 1 ) echo( $s.$val."\n" );
  7.     // sinon on continue de parcourir l'arba avec les autres sous tableaux
  8.     else combi( array_slice($a, 1, count($a)-1) , $s.$val );
  9. }
 

et tu l'appelles avec

Code :
  1. combi($a,'');


$a c'est ton tableau


Message édité par rengzehn le 15-12-2011 à 08:36:59
n°2116741
Daxorp
Posté le 15-12-2011 à 09:44:21  profilanswer
 

Trap D, ça ressemble à ce que j'ai fait, je vais essayer de terminer comme ça.
rengzehn, je vais essayer aussi parce que c'est joli en récursif et je ne suis pas très à l'aise avec cette méthode!
Merci à vous 2. :jap:


---------------
Daxorp - Portail Kiao

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [algo] Toutes les combinaisons d'un tableau à 2 dimensions?

 

Sujets relatifs
tableau vbsTableau à taille défini par l'user au runtime
Variable tableau / Range("A1:A" & i) = montab - ne fonctionne pas[RESOLU] Recuperer tableau associatif de ma session
problème exercice tableau[Algo] + [Python] Analyse d'une formule
diviser tableau en plusieurs pagesmodifier directement tableau page web
Copy de tableau de caractère dans un tableau de caractère.HTML/CSS : Centrage tableau bug
Plus de sujets relatifs à : [algo] Toutes les combinaisons d'un tableau à 2 dimensions?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR