Probleme en c

salut
windows98
j'ai un problème en c++ que je n'est pas trouver de solution
le problème:
ecrire un programme en c qui permet de déterminer toute les combinaisons possibles a partir d'un ensemble de n entiers données.
exemple d'execution:
n=3.
1ere valeur: 1
2ème valeur: 3
3ème valeur: 5
les combinaisons possibles sont:
135-153-351-315-513-531

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. Salut,
    C'est un algo reccursif...
    Le principe c'est de faire tourner les élements du tableau et d'appeler
    la procédure pour refaire le traitement en ne tenant pas compte des
    éléments qu'on déja fait tourner, jusqu'à arriver à un tableau d'un seul
    élément
    En algo, ça donne un truc comme ça (les tableaux commecent à l'index 0)
    PROCEDURE combinaison( donnees, nombre, premier )
      donnees TABLEAU D'ENTIER
      nombre ENTIER (taille du tableau donnees)
      premier ENTIER
    DEBUT
      i, j, sauve : ENTIER
      SI premier = nombre ALORS
        afficher tableau donnees
      SINON
        POUR i=premier A nbelement-1 FAIRE
          APPELER cominaison( tableau, nbelement, premier+1 )
          sauve = donnees[premier]
          !! on fait tourner les élément du tableau (le premier devient dernier)
          POUR j=premier A nombre-2 FAIRE
            donnees[j] = donnees[j+1]
          FIN.POUR
          donnees[nombre-1] = sauve
        FIN.POUR
      FIN.SI
    FIN
    

    Le premier appel se faisant avec premier à 0. A toi de coder ça dans ton
    langage de programmation.

    A+, bon courage, crabs
    1. salut je voudrai une solution dont je n'utilise pas les procédure ni les fonctions pour ce probléme en c:
      ecrire un programme en c qui permet de déterminer toutes les combinaison possibles de n entiers donnés.exemple d'execution:
      n=3
      1ére valeur:1
      2éme valeur:3
      3éme valeur:5
      les combinaisons sont:
      135-153-315-351-513-531
      merci.
    2. @aminatousImpossible sans récursivité, donc si pas droit aux fonctions, tu ne peux
      pas résoudre le problème.
    3. @crabsmais c'est possible.et cela en utilusant des permutations successives et en copiant chaque combinaisons dans un tableau a double dimension.mais j'ai pas trouvé l'algorithme adéquat pouvez-vous m'aidez?merci
    4. Bonjour crabs,

      Est-ce que c'est possible d'avoir un programme qui fait toutes les combinaisons possibles par exemple
      Parmi 22 boules je veux avoir des combinaisons de 4 chiffres ce qui donnerait 175 560/24 = 7 315 combinaisons
      Ou bien pour restreindre un peu parmi 6 boules je veux avoir des combinaisons de 4 chiffres 360/24= 15 combinaisons
      Sans permutations, sans arrangements
      Je ne veux pas avoir une combinaison qui fait par exemple Avec les chiffres 1 à 5
      1;2;3;4
      2;1;3;4

      Pour avoir seulement 5 combinaison normales.
      1;2;3;4
      1;2;3;5
      1;2;4;5
      2;3;4;5
      1;3;4;5
  2. si c'est ça, tu peux t'en sortir avec ds boucles for imbriquées, le point de départ de la n+1ième dépendant du point de départ de la n-ième... c'est bourrin mais ça marche

    exemple pour tes 5 boules en cherchant des combinaisons à 4 chiffres, sachant que la valeur maximale de ton 1er élément ne pourra pas dépasser 6-4=2, que celle de ton 2e ... etc... et vice-versa en partant de la fin : ton dernier élément ne pourra pas etre inférieur à 4
    for(int i=1; i<=2; i++)
    {
    for(int j=i+1; j<=3;j++)
    {
    for(int k=j+1; k<=4;k++)
    /// etc
    1. Bonjour,
      Je vais essayer de mieux m'expliquer à savoir si c'est possible ou non
      Je cherche un algorithme ou code (c++ ou visual basic) dont le but est d'afficher toutes les combinaisons possible de p éléments d'un tableau d'entiers de n
      Éléments exemple :
      J'ai un tableau de 3 éléments int[] tab = {1,2,3} et que je veux les combinaisons de 2 éléments.
      resultats.
      Les combinaisons de 1 2 3 avec p=2 sont :
      12
      13
      23

      Je veux un algorithme générique pour un tableau de n entier, et le nombre d'élément des combinaisons est p (C(n,p))
      Sans permuation, sans arrangements, sans répétitions.

      Exemple si je veux avoir 4 numéros parmi 22 numéros
      3,4,6,7,8,10,11,12,15,17,25,28,29,30,32,38,41,44,45,51,63
      Ce qui donne 175 560 / 24 = 7 315 combinaisons
      Pour 15 numéros possible et d'en choisir 4 on pourrait faire 15 combinaisons.

      Est-ce que c'est possible de l'avoir au complet?
      Un gros Merci à l'avance
  3. bonjour tt le monde...
    eske vous pourriez just me donner le(s) site(s) où jpourai trouver des algorithmes de" flots max à couts min"
    marchi marchi davance....
    1. voila bonjour je voudrai avoir toute les combinaison de chiffres possible avec les 16 chiffres
      c'est a dire 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
      16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 excetera voila si quelqu'un peu me les donner sa serai super gentil. merci a plus
      1. tu veux toutes les possibilités? il y en a 20922789888000 en tout... ça risque de faire long à lister...