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 :

Générateur de combinaisons, comment séquencer le travail ?


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Gilles57-H-G
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 88
    Par défaut Générateur de combinaisons, comment séquencer le travail ?
    Je cherche toutes les combinaisons possibles avec 26 caractères.

    En théorie, il faut un tableau T(26) de 26 caractères.

    Imbriquer 26 boucles (0 to 26)
    et écrire
    T(1),T(2),T(3),T(4),..........T(24),T(25),T(26).

    Facile.

    Le problème c'est que c'est complètement ingérable pour l'ordinateur, nous conviendrons.

    Donc, ayant au préalable testé des fonctions récursives

    http://www.developpez.net/forums/d99...ion-caractere/
    Sans succès (Max 6 Caractères)

    J'ai testé Ceci Sur 3 caracteres

    '''' (....Début VB....)
    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
    22
    23
    24
    25
    26
     
            Dim mot As String
            Dim a As Integer
            Dim b As Integer
            Dim c As Integer
     
            mot = a & b & c
            ListBox1.Items.Add(mot)
            While a <= 2 And b <= 2 And c <= 2
     
                c = c + 1
                mot = a & b & c
                ListBox1.Items.Add(mot)
     
                If c = 2 Then
                    c = 0
                    b = b + 1
                End If
     
                If b = 2 And c = 2 Then
                    b = 0
                    c = 0
                    a = a + 1
                End If
     
            End While
    '''' (....Fin VB....)

    Ne me donne pas toutes les combinaisons des trois caractères a,b,c.



    Comment faire pour " cloisonner" le travail de l'ordinateur,comment faire fonctionner les boucles les unes indépendamment des autres en enregistrant les résultats.

    J'ai essayé de récupérer la valeur intermédiaire de 4 boucles imbriquées, d'enregistrer les données, de sortir des boucles, et de reprendre les boucles (Travail) au niveau ou je les avais laissé.

    Ce fut un échec.

    Je pense qu'il doit y avoir un moyen de générer en plusieurs étapes par séquences et en plusieurs liste la totalité des combinaisons de 26 caractères par 26 caractères.

    Qu'en pensez vous

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Je pense que si tu remplaces tes caractères a,b,c par des chiffres 1,2,3 la réponse t'apparaitra plus clairement.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre confirmé Avatar de Gilles57-H-G
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 88
    Par défaut
    C'est pas le problème, ou alors il faudrait faire des conversion de string et boucler sur une chaine de caractère.

    Je doit avoir
    000
    001
    002
    010
    011
    012
    020
    021
    022
    100
    101
    102
    110
    111
    112
    120
    121
    122
    200
    201
    202
    210
    211
    212
    220
    221
    222

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    cool. Ca ressemble rudement a un compteur en base 3, non ?
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Membre confirmé Avatar de Gilles57-H-G
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 88
    Par défaut
    J'ai la feuille , je l'ai écrite à la main c'est facile LOL.

    Je suis en train de faire le dernier algo avec des boucles...

    Comment faire pour avoir toutes ces combinaisons ?

  6. #6
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Dans ton exemple, pour avoir les combinaisons à 3 éléments parmi 3 il suffit d'écrire les 27 (3*3*3) premiers nombres en base 3.

    Logiquement, pour avoir les combinaisons à 26 éléments parmi 26 il suffit d'écrire les 26^26 premiers nombres en base 26.

    (ca fait tout de meme + de 6.10^36 )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    décimal            base26
    -------    -----------------------
    0000..0    [0][0][0][0]...[0]
    0000..1    [0][0][0][0]...[1]
    0000..2    [0][0][0][0]...[2]
    ...
    26^26-1    [25][25][25][25]...[25]
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

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

Discussions similaires

  1. Comment Je Px Travailler Sur La Meme Base
    Par Maria1505 dans le forum Oracle
    Réponses: 5
    Dernier message: 10/11/2006, 07h42
  2. Réponses: 4
    Dernier message: 30/05/2006, 09h30
  3. Réponses: 4
    Dernier message: 09/02/2006, 12h02
  4. Générateur de combinaisons
    Par dany108 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 29/04/2005, 22h29
  5. [INDEPENDANT]Comment declarer son travail ?
    Par xufux dans le forum Freelance
    Réponses: 21
    Dernier message: 03/07/2004, 23h23

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