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

  FORUM HardWare.fr
  Programmation
  Algo

  Probleme Boucle "pour" en nombre variable

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme Boucle "pour" en nombre variable

n°1737152
zz2f3
Posté le 26-05-2008 à 13:03:29  profilanswer
 

Bonjour,
 
J'ai un problème d'algorithmique par rapport au parcours de dossiers et fichiers mais plus particulièrement pour coder un nombre variable de boucles "pour".
 
Mon Problème :
 
J'ai à ma disposition n dossiers contenant chacun k(n) fichiers. (Chaque dossier ne contient pas forcément le même nombre de fichiers)
 
Je voudrais à partir de ces fichiers créer toutes les combinaisons possibles de fichiers en prenant un fichier dans chaque dossier.
Cependant la fonction que je chercher à coder devra pouvoir prendre le nombre de dossiers en paramètre. Mon problème se trouve donc à cet endroit la. En effet, avec un nombre de dossiers fixe j'avais pensé à la solution suivante :
 
Pour 3 dossiers A,B,C contenant respectivement Nb_fichiers_A, Nb_fichiers_B et Nb_fichiers_C fichiers :
 
 

Code :
  1. Pour a de 1 à Nb_fichiers_A
  2.       Pour b de 1 à Nb_fichiers_B
  3.             Pour c de 1 à Nb_fichiers_C
  4.                       ....
  5.             Fait
  6.      Fait
  7. Fait


 
 
En partant des dossiers :
A : FichierA_1 FichierA_2 FichierA_3 (3 fichiers)
B : FichierB_1 FichierB_2 (2 fichiers)
C : FichierC_2 FichierC_3 (2 fichiers)
 
Je voudrais donc obtenir les (3*2*2=12) combinaisons :
A1-B1-C1 A1-B1-C2
A1-B2-C1 A1-B2-C2
A2-B1-C1 A2-B1-C2
A2-B2-C1 A2-B2-C2
A3-B1-C1 A3-B1-C2
A3-B2-C1 A3-B2-C2
afin de réutiliser ces fichiers pour une utilisation ultérieure.
 
Comment faire pour avoir un nombre de dossiers variable sans recourir à une solution "moche" consistant à poser un nombre max de dossiers et faire des tests ...
Si cela peut vous être utile, j'utilise le language R pour programmer mais une solution algorithmique me permettrait d'avancer.
 
En espérant avoir été assez clair, Merci par avance de votre aide!
 
Bonne journée

mood
Publicité
Posté le 26-05-2008 à 13:03:29  profilanswer
 

n°1737372
Trap D
Posté le 26-05-2008 à 18:29:44  profilanswer
 

Salut
 
Celà se fait avec un seul indice t, un tableau Cur(N) qui mémorisera la position dans les différents tableaux k(N), et un tableau Max(N) qui mémorise le nombre maximum d'éléments du tableau K(n).
t sert à se promener dans les différents tableaux Cur(N) au moment de l'incrémentation


Initialisation
On est au premier élément de tous les tableaux
pour i de 1 à N faire
 Cur(i) = 1
fin pour
 
On balaie le premier tableau
t = 1
tant que t <= N faire
 construire la chaine courante indicée par t (par exemple K(1)(Cur(1)) + K(2)(Cur(2)) + K(3)(Cur(3))+ ...)
 Cur(t) <- Cur(t) + 1
 tant que t <= N et Cur(t) > Max(t) faire
     On remet le compteur au départ pour ce tableau
  Cur(t) <- 1
  on passe au tableau suivant
  t <- t + 1
  On vérifie qu'on n'a pas dépasser le nombre de tableaux
  si t <= N alors
      on augment l'indice courant de ce tableau
   Cur(t) <- Cur(t) + 1
   Si on ne dépasse l'indice maxi du tableau courant
   si Cur(t) <= Max(t)  
       on repart pour un tour  
    t = 1;
   fin si
  fin si    
 fin tant que
fin tant que


Message édité par Trap D le 26-05-2008 à 18:30:22
n°1738211
zz2f3
Posté le 28-05-2008 à 10:54:51  profilanswer
 

Merci Trap D.  
J'ai malheureusement trouvé une autre solution plus rapidement! Mais j'essaierais quand même la tienne si j'ai un peu de temps pour voir laquelle est la mieux!
 
Bonne journée


Message édité par zz2f3 le 28-05-2008 à 10:55:20
n°1779748
nisalon_ca​je
Posté le 29-08-2008 à 12:04:25  profilanswer
 

je sais que je poste un peu tard ^^ mais on peut aussi le faire très simplement de manière récursive ^^


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

  Probleme Boucle "pour" en nombre variable

 

Sujets relatifs
Problème d'insertion dans une table sous ACCESSProblème requête
boucle forChdir, problème de droit
Probleme de changement de fond d'écrans avec CSSProbleme affichage IE
Petit probleme de denombrementproblème affichage entre ie et mozilla
[HTML] Problème de redirectionproblème de boucle/session : envoi de doublons en nombre variable ?!
Plus de sujets relatifs à : Probleme Boucle "pour" en nombre variable


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