Algorithme defficile

Coeur -  
 Coeur -
Bonjour,
je besions d'algorithme de combinaison des valeurs
exple une tab={1,2,3,4}
on veut combiner chaque 3 valeurs
donc C(4,3)=4
le resultat est une matrice
1 2 3
1 2 4
1 3 4
2 3 4

merci 2avance
Configuration: Windows Vista
Firefox 3.0.17

2 réponses

  1. Gord21 Messages postés 928 Statut Membre 289
     
    Bonjour,
    Je ne connais pas suffisament le Java, mais voici un exemple en textuel.

    /* Déclaration */
    val1, val2, val3 /*= 3 variables extraites */
    rang /*variable qui permet d'incrémenter les solutions*/
    tab = {1,2,3,4} /* = ta liste de valeurs */
    resultat(n, 3) /* = ton tableau de résultats n lignes 3 colonnes*/
    rang = 1
    Pour chaque val1 dans tab de 1 à (dimension de tab - 2)
       Pour chaque val2 dans tab de val1+1 à (dimension de tab - 1)
          Pour chaque val3 dans tab de val2+1 à (dimension de tab)
             resultat(rang, 1)=tab(val1)
             resultat(rang, 2)=tab(val2)
             resultat(rang, 3,)=tab(val3)
             rang = rang + 1
          val3 suivant
       val2 suivant
    val1 suivant


    J'espère que c'est clair. N'hésite pas.
    2
    1. Coeur
       
      merci bien pour ton effort mais je besois un algorithme qui traite c problem dans le cas generale quelque soit le taille de tabeleau initiale.
      le tableau intiale peut contenir un nombre inconnu des valeurs donc l'algorithme doit generer tous les combinaison
      merci
      0
    2. Gord21 Messages postés 928 Statut Membre 289 > Coeur
       
      Est-ce que le Java accepte les appels récursifs de fonctions ?
      0
    3. bat > Gord21 Messages postés 928 Statut Membre
       
      wi biensur
      0
    4. Coeur > Gord21 Messages postés 928 Statut Membre
       
      wi Java accepte les appel récursif des fonctions
      0
    5. Gord21 Messages postés 928 Statut Membre 289 > Coeur
       
      Bonjour,
      Voici un exemple pour p éléments pris dans une liste de n éléments.

      ' Déclaration des variables
      i, ligne
      ' Déclarer une variable de retenue
      retenue
      ' Déclarer un tableau de p colonnes et C(n,p) lignes
      tab_valeurs(C(n,p),p)
      '
      ' Remplir la première ligne
      Pour i = 1 à p
         tab_valeurs(1,i) = i
      i suivant
      '
      retenue=0
      Pour ligne=2 à C(n,p)
         Si tab_valeurs(ligne-1,p)+1 > p alors
            tab_valeurs(ligne,p) = 1
            retenue = 1
         sinon
            tab_valeurs(ligne,p) = valeurs(ligne-1,p) + 1
         fin_de_si
         i=p-1
         Tant que retenue = 1
            Si tab_valeurs(ligne-1,i)+1 > p alors
               tab_valeurs(ligne,i) = 1
               retenue = 1
               i = i - 1
            sinon
               tab_valeurs(ligne,i) = valeurs(ligne-1,i) + 1
               retenue = 0
            fin_de_si
         Fin_de_tant_que
      ligne suivante


      Normalement, ça marche.
      J'ai laissé tomber la forme récursive qui me paraissait intéressante : je ne vois pas comment la mettre en forme.
      0
  2. Gord21 Messages postés 928 Statut Membre 289
     
    Bonsoir,
    Sous quel langage ?
    0
    1. Coeur
       
      java
      0
    2. Coeur
       
      Si vous pouvez just me donner une description textuel de l'algorithme et j'essai moi même de faire l'implimentation en java merci d'avance
      0