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

  FORUM HardWare.fr
  Programmation
  Algo

  ennumération de combinaisons d'éléments

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

ennumération de combinaisons d'éléments

n°1588657
pango
Posté le 19-07-2007 à 11:21:54  profilanswer
 

Bonjour;
 
Petite question:
Soit un ensemble de n éléments distincts (un vecteur d'entiers dans mon cas), comment faire pour lister toutes les combinaisons possibles d'éléments pris m à m
 
Quelqu'un a-t-il une solution simple pour cette tache ?

mood
Publicité
Posté le 19-07-2007 à 11:21:54  profilanswer
 

n°1588860
rufo
Pas me confondre avec Lycos!
Posté le 19-07-2007 à 15:30:39  profilanswer
 

oui, utiliser les boucles for
 
ps : on ne fait pas les exos ici. Viens avec ton code et on en reparle...


Message édité par rufo le 19-07-2007 à 15:31:48
n°1588901
Trap D
Posté le 19-07-2007 à 16:07:34  profilanswer
 

Moi je dirais plutôt une boucle tant que avec trois tableaux : le tableau qui représente le vecteur source (indice 1 .. n), ke tableau qui représente le vecteur but (indice 1 .. m) et un tableau d'index dans le vecteur source (indice 1.. m).

n°1589015
pango
Posté le 19-07-2007 à 19:12:14  profilanswer
 

Trap D a écrit :

Moi je dirais plutôt une boucle tant que avec trois tableaux : le tableau qui représente le vecteur source (indice 1 .. n), ke tableau qui représente le vecteur but (indice 1 .. m) et un tableau d'index dans le vecteur source (indice 1.. m).


 
Ben en fait, le problème reste entier, comment tu met à jour ton tableau d'index sur le vecteur source ?
 
Si on veut prendre des éléments 2 à 2, on fait simplement deux boucles imbriquées et basta

Code :
  1. for (int i=0; i<n-1; i++) {
  2.    for (int j=i+1; j<n; j++{
  3.       ...
  4.    }
  5. }


 
Pour le cas général, (choisir des éléments m à m), on peut visiblement le faire avec une fonction récursive appelée m fois, mais je me demande s'il n'y a pas plus simple...
 
 
 

n°1589020
Trap D
Posté le 19-07-2007 à 19:19:58  profilanswer
 

J'ai simplement oublié de dire qu'il faut un tableau pour mémoriser les combinaisons, mais sinon, tu as le principe.

n°1589170
MEI
|DarthPingoo(tm)|
Posté le 20-07-2007 à 10:19:18  profilanswer
 

Moi j'aurai tendance a faire une class Combinaison en definisant entier A et entier B et redefinir ce qu'il faut pour faire des recherche dans un Vector de Combinaison.
 
Et un code genre :

Code :
  1. Vector<Combinaison> vComb = new Vector<Combinaison>();
  2.    Combinaison objComb;
  3.    for (int i = 0; i < n - 1 ; i++) {
  4.       for (int j = i + 1 ; j < n ; j++) {
  5.          objComb = new Combinaison(v1.get(i), v2.get(j));
  6.        
  7.          if (not vComb.exists(objComb)) {
  8.             vComb.add(objComb);
  9.          }
  10.       }
  11.    }


Message édité par MEI le 20-07-2007 à 10:20:47

---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |

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

  ennumération de combinaisons d'éléments

 

Sujets relatifs
Appliquer un onmouseout sur un conteneur ET ses élémentsElements hérités dans une liste
Tri de tableau sur la fréquence des élémentsPersonnaliser les elements d'une combobox
Combinaisons PHP d'une chaineliste simple avec 2 pointeurs sur le premier et le dernier elements
fonction recherche de plusieurs élémentsIntégrer une animation flash à des éléments html
récupérer les éléments d'un sortable dans PHPSélectionner des éléments au sein d'une frame
Plus de sujets relatifs à : ennumération de combinaisons d'éléments


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