IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Algo qui donne le nombre de combinaison pos


Sujet :

Algorithmes et structures de données

  1. #1
    Membre Expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 915
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 915
    Par défaut Algo qui donne le nombre de combinaison pos
    Bonjour,
    je cherche l'algorithme qui donne le nombre de combinaison possible.
    Je m'explique j'ai un nombre x d'élément et je cherche à connaitre toutes les combinaison possible.

    Exemple j'ai 1 2 3
    et je veux énumérer la liste suivante
    1
    1 2
    1 3
    1 2 3
    2
    2 3
    3

    Connaissez vous l'algorithme
    Merci pour votre aide

  2. #2
    Membre Expert
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Par défaut
    Pour le dénombrement :
    http://fr.wikipedia.org/wiki/Coeffic...et_statistique



    (dans cette formule l'ensemble vide k=0 est considéré comme une solution)

    Le dénombrement est constructif, il te donne un algorithme.
    Ici il suffira d'énumérer toutes les combinaisons pour k=1 jusqu'à k=n.

  3. #3
    Membre Expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 915
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 915
    Par défaut
    Merci.
    J'ai besoin maintenant d'énumérer cette liste
    mais je ne vois pas trop comment faire

  4. #4
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    C'est en fait assez simple.

    Si t'as un ensemble S qui contient un élément a et un sous ensemble S' = S-{a}.

    L'ensemble des combinaisons de S est l'ensemble des combinaisons de S' + l'ensemble des combinaisons de S' concaténé avec a.

    Et si S est l'ensemble vide, il n'y a pas de combinaisons possibles.

    C'est donc une propriété récursive qui permet d'écrire ceci

  5. #5
    Membre Expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 915
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 915
    Par défaut
    MOUAIS..
    J'ai pas tout compris.
    Si on pouvais m'expliquer ça autrement ça serai gentil.

  6. #6
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Si on prend l'ensemble : [1,2,3]

    Si je note comb(S) la fonction qui donne l'ensemble des combinaisons d'un ensemble
    Je note concat(n, C) la concaténation de n à à l'ensemble de combinaisons C
    Par exemple :
    concat(n, [[1,2,3], [1,2]) = [ [1,2,3,n], [1,2,n] ]

    J'ai dit que :
    comb([1,2,3]) = concat(1, comb([2,3])) UNION comb([2,3])

    Faut calculer comb([2,3]) =
    concat(2, comb([3]) UNION comb([3])

    Puis comb([3]) = concat(3, comb([])) UNION comb([])) = [[3], []]
    (car comb([]) = [[]])

    Donc comb([2,3]) = concat(2, [[3],[]]) UNON [[3],[]] = [[2,3], [2], [3], []]
    Donc comb([1,2,3]) = concat(1, [[2,3], [2], [3], []) UNION [[2,3], [2], [3], []) = [[1,2,3], [2,1], [3,1], [1], [2,3], [2], [3], []]

  7. #7
    Membre Expert
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Par défaut
    Code Caml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    let rec power_set = function
      | [] -> [[]]
      | a::l ->
          let t = power_set l
          in  List.append (List.map (fun x -> a::x) t) t

    Exemple:
    Code Caml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    # power_set [1;2;3];;
    - : int list list = [[1; 2; 3]; [1; 2]; [1; 3]; [1]; [2; 3]; [2]; [3]; []]

  8. #8
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    @SpiceGuid : c'est tout à fait à ça que je pensais. J'ai pas voulu l'écrire car j'avais désinstallé caml de l'ordi... et je voulais pas filer un truc de 3 lignes non testé

  9. #9
    Membre Expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 915
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 915
    Par défaut
    Je suis vraiment désolé, j'aurai du le dire depuis le début.

    Je débute dans la programmation, et je code en Windev.

    Après avoir fait d'autre recherche je suis tomber sur ce bout de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    fonction permutation(tableau, permutation)
    debut
      si tableau est vide alors
        afficher la permutation
      sinon
        pour tous les éléments a du tableau faire
          tableau1 <- tableau - a
          permuation1 <- permutation + a
          permutation(tableau1, permutation1)
        fin pour
      fin si
    fin
    Mais je n'arrive pas à le mettre en place.
    Est-ce bon pour ce que je veux faire?

  10. #10
    Membre Expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 915
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 915
    Par défaut
    Ca y est, j'ai réussi.
    Merci pour votre aide.

    Le bout d'algo fonctionne, fallait juste que j'arrive à le transposer en code.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. programme qui saisie une somme et qui donne le nombre de billet
    Par levasseur62 dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 02/11/2010, 14h34
  2. Algorithme qui affiche le nombre de combinaison possible
    Par hsoussou dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 07/01/2009, 15h32
  3. algo qui affiche par ordre croissant des nombres
    Par jeremdu69300 dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 18/09/2008, 23h16
  4. script qui donne les nombres premiers
    Par islah dans le forum Langage
    Réponses: 2
    Dernier message: 28/08/2008, 21h06
  5. Réponses: 4
    Dernier message: 28/10/2005, 16h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo