Probleme en c

aminatous -  
SebManfred Messages postés 484 Date d'inscription   Statut Membre Dernière intervention   -
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

  1. crabs Messages postés 909 Statut Membre 507
     
    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
    0
    1. aminatous
       
      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.
      0
      1. crabs Messages postés 909 Statut Membre 507 > aminatous
         
        Impossible sans récursivité, donc si pas droit aux fonctions, tu ne peux
        pas résoudre le problème.
        0
      2. aminatous > crabs Messages postés 909 Statut Membre
         
        mais 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
        0
    2. Ravageur
       
      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
      0
  2. SebManfred Messages postés 484 Date d'inscription   Statut Membre Dernière intervention   128
     
    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
    0
    1. Ravageur
       
      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
      0
  3. mimi
     
    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....
    0
  4. priscilla
     
    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
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. SebManfred Messages postés 484 Date d'inscription   Statut Membre Dernière intervention   128
     
    tu veux toutes les possibilités? il y en a 20922789888000 en tout... ça risque de faire long à lister...
    0