Probleme en c

Fermé
aminatous - 3 déc. 2005 à 18:44
SebManfred Messages postés 484 Date d'inscription mardi 28 août 2007 Statut Membre Dernière intervention 20 mai 2011 - 15 févr. 2008 à 10:10
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

crabs Messages postés 908 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 3 août 2008 507
3 déc. 2005 à 20:07
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
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
crabs Messages postés 908 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 3 août 2008 507 > aminatous
4 déc. 2005 à 13:41
Impossible sans récursivité, donc si pas droit aux fonctions, tu ne peux
pas résoudre le problème.
0
aminatous > crabs Messages postés 908 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 3 août 2008
4 déc. 2005 à 17:33
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
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
SebManfred Messages postés 484 Date d'inscription mardi 28 août 2007 Statut Membre Dernière intervention 20 mai 2011 128
6 févr. 2008 à 16:58
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
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
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
SebManfred Messages postés 484 Date d'inscription mardi 28 août 2007 Statut Membre Dernière intervention 20 mai 2011 128
15 févr. 2008 à 10:10
tu veux toutes les possibilités? il y en a 20922789888000 en tout... ça risque de faire long à lister...
0