IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Programme pour toutes les combinaisons possibles entre N ensemble de mi éléments.


Sujet :

Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2015
    Messages : 18
    Points : 9
    Points
    9
    Par défaut Programme pour toutes les combinaisons possibles entre N ensemble de mi éléments.
    Bonjour,

    j'ai N ensembles, chacun dispose de m éléments (m diffère d'un ensemble à l'autre).
    Je cherche un programme qui fait toutes les combinaisons possibles entre les N ensembles en sélectionnant un élément de chaque ensemble.

    Exemple:

    Ens1={e11, e12}; Ens2={e21, e22, e23}; Ens3={e31, e32}.

    Combinaison 1 : e11 e21 e31
    Combinaison 2 : e11 e21 e32
    Combinaison 3 : e11 e22 e31
    Combinaison 4 : e11 e22 e32
    Combinaison 5 : e11 e23 e31
    Combinaison 6 : e11 e23 e32
    ....
    Combinaison 12 : e12 e23 e32


    Remerciements.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Algorithme récursif :

    Soit ensembles : la liste des ensembles à combiner (ENTRÉE)

    Code pseudocode : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    
    
    créerCombinaisons(ensembles) {
    
        créer combinaisons, une liste de combinaisons à produire, vide pour l'instant (SORTIE)
        créer construction, une liste d'éléments, vide, pour construire chaque combinaison
        
        appeler créerCombinaisons( combinaisons, construction, ensembles, 0); // index à 0 au début soit le premier ensemble
    
        retourner combinaisons // retourner le résultat en SORTIE
    
    }
    
    créerCombinaisons(combinaisons, construction, ensembles, index) {
    		
          si index est supérieur ou égal à nombre d'ensembles alors
              stocker copie de construction actuel dans combinaisons
          sinon
              pour tous les élements E de l'ensemble d'index "index" dans ensembles faire 		
                   ajouter E dans construction
                   appeler récursivement creerCombinainons(combinaisons, construction, ensemble, index + 1) // traiter récursivement l'ensemble suivant
                   supprimer E de construction (enlever le dernier élément actuel de construction)
              fin pour
          fin si
    }

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2015
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    Salut,

    Algorithme récursif :

    Soit ensembles : la liste des ensembles à combiner (ENTRÉE)

    Code pseudocode : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    
    
    créerCombinaisons(ensembles) {
    
        créer combinaisons, une liste de combinaisons à produire, vide pour l'instant (SORTIE)
        créer construction, une liste d'éléments, vide, pour construire chaque combinaison
        
        appeler créerCombinaisons( combinaisons, construction, ensembles, 0); // index à 0 au début soit le premier ensemble
    
        retourner combinaisons // retourner le résultat en SORTIE
    
    }
    
    créerCombinaisons(combinaisons, construction, ensembles, index) {
    		
          si index est supérieur ou égal à nombre d'ensembles alors
              stocker copie de construction actuel dans combinaisons
          sinon
              pour tous les élements E de l'ensemble d'index "index" dans ensembles faire 		
                   ajouter E dans construction
                   appeler récursivement creerCombinainons(combinaisons, construction, ensemble, index + 1) // traiter récursivement l'ensemble suivant
                   supprimer E de construction (enlever le dernier élément actuel de construction)
              fin pour
          fin si
    }
    Bonjour,

    j'ai du mal à comprendre cet algorithme.

    Puis-je avoir une idée plus détaillée.

    je tiens à souligner que les ensembles sont des objets d'une classe C1 et les éléments sont d'une classe C2.

    Merci.

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Avec ce canevas, est-ce plus clair (C2 est String et C1 String[]) ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    public static void main(String[] args) {
     
    		String[] ensemble1={"e11", "e12"}; 
    		String[] ensemble2={"e21", "e22", "e23"};
    		String[] ensemble3={"e31", "e32"};
     
    		for(String[] combi : creerCombinaisons(ensemble1, ensemble2, ensemble3)) {
    			System.out.println(Arrays.toString(combi));
    		}
     
    	}
     
    	private static List<String[]> creerCombinaisons(String[]...ensembles) {
     
    		List<String[]> combinaisons = new ArrayList<>();
    		List<String> construction = new ArrayList<>();
    		creerCombinaisons(combinaisons, construction, ensembles, 0);
    		return combinaisons;
     
    	}
     
    	private static void creerCombinaisons(List<String[]> combinaisons, List<String> construction, String[][] ensembles, int index) {
     
                   // code ici		
     
    	}

Discussions similaires

  1. [C#] Effectuer toutes les combinaisons possibles entre (n) entiers
    Par unix27 dans le forum Débuter
    Réponses: 11
    Dernier message: 05/11/2014, 16h04
  2. Stocker dans un tableau toutes les combinaisons possibles entre plusieurs tableaux.
    Par gui-yem dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 19/03/2014, 15h22
  3. Toutes les combinaison possibles entre les termes
    Par Wim88 dans le forum Général Java
    Réponses: 7
    Dernier message: 28/02/2014, 18h27
  4. Réponses: 1
    Dernier message: 09/01/2014, 21h27
  5. Algo pour toutes les combinaisons possibles
    Par rantanplan08 dans le forum Général Java
    Réponses: 6
    Dernier message: 03/01/2008, 09h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo