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

Mathématiques Discussion :

Problème Algorithme combinatoire


Sujet :

Mathématiques

  1. #1
    Membre actif Avatar de Neiflheim
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2011
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2011
    Messages : 135
    Points : 269
    Points
    269
    Par défaut Problème Algorithme combinatoire
    Bonjour à tous,

    Je bloque un peu sur la résolution d'un algorithme combinatoire.

    J'ai par exemple une colonne C1 qui contient n index
    J'ai un seuil de m index défini au départ

    J'aimerais avoir toutes les combinaisons de C1 par groupe de m index, sans doublons.

    Bon je m'enfonce, je vais donner un exemple

    C1(1 à 7 index)

    Seuil : 3

    Combinaisons possibles (retour chariot pour plus de lisibilité) :
    123 123 125 126 127
    134 135 136 137
    145 146 147
    156 157
    167

    234 235 236 237
    245 246 247
    256 257
    267

    etc jusqu'à 567

    Merci de m'aiguiller sur la bonne piste

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur R&D en apprentissage statistique
    Inscrit en
    Juin 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur R&D en apprentissage statistique

    Informations forums :
    Inscription : Juin 2009
    Messages : 447
    Points : 752
    Points
    752
    Par défaut
    Ben il suffit de faire exactement ce que tu as fait pour écrire la

  3. #3
    Membre actif Avatar de Neiflheim
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2011
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2011
    Messages : 135
    Points : 269
    Points
    269
    Par défaut
    Euh oui mais là c'était un exemple

    Quand je vais avoir 1000 index avec un seuils de 30, ça va pas être la même chose


    J'ai oublié de préciser que je programmais en .NET (VB ou C#) !

  4. #4
    Membre éclairé
    Homme Profil pro
    Ingénieur R&D en apprentissage statistique
    Inscrit en
    Juin 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur R&D en apprentissage statistique

    Informations forums :
    Inscription : Juin 2009
    Messages : 447
    Points : 752
    Points
    752
    Par défaut
    Avec un truc récursif du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    def build_sequence(n,m,curr_seq,sequences):
        if length(curr_seq) == m :
            sequences.append(curr_seq)
        else :
            last_val = last(curr_seq)
            for i = last_val+1 .. n :
                 new_seq = curr_seq + i
                 build_sequences(n,m,new_seq,sequences)
    et si ce n'est pas possible tu mime les appels récursifs avec une pile.

  5. #5
    Membre actif Avatar de Neiflheim
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2011
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2011
    Messages : 135
    Points : 269
    Points
    269
    Par défaut
    Merci beaucoup tu m'as mis sur la bonne voie avec la boucle sur une procédure (je ne suis pas encore très familier avec la récursivité). Avec ta fonction j'avais un problème à partir de 10, j'ai donc modifié un peu le principe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
      Sub Main()
            Dim n As Integer = 148
            Dim m As Integer = 5
            For i = 1 To n
                BuildCombinaison(n, m, i)
            Next
        End Sub
     
     
        Private Sub BuildCombinaison(ByVal n As Integer, ByVal m As Integer, ByVal Current As String)
            If Current.Split("-").Length  = m Then
                Console.WriteLine(Current.ToString)
            Else
                Dim Chaine() As String = Current.Split("-")
                Dim Dernier As Integer = Chaine(Chaine.Length - 1)
                For i = Dernier + 1 To n
                    Dim NouvelleSequence As String = Current & "-" & i
                    BuildCombinaison(n, m, NouvelleSequence)
                Next
            End If
        End Sub

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

Discussions similaires

  1. Un problème de combinatoire
    Par Sehnsucht dans le forum VB.NET
    Réponses: 4
    Dernier message: 20/10/2008, 18h16
  2. Problème algorithme de recensement
    Par viewtifulced dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 26/05/2008, 13h19
  3. Problème algorithme de comptage
    Par alex4444 dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 02/02/2008, 10h08
  4. Notion Algorithmes Combinatoires
    Par zouhour dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 12/12/2007, 18h16
  5. problème algorithme récursif
    Par seb888 dans le forum Général Java
    Réponses: 11
    Dernier message: 04/06/2005, 21h35

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