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

C# Discussion :

Générer des séquences binaires


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Par défaut Générer des séquences binaires
    Bonjour,

    Je suis bloqué sur algorithme que je n'arrive pas à écrire en C# :

    Je souhaiterai générer à partir d'une séquence binaire, la séquence suivante en partant du nombre d'éléments à générer.

    Un exemple avec 3 éléments :

    Séquence de début 0 0 0

    A chaque appel de l'algorithme je dois retrouver dans l'ordre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    GetFirstSequence(3); --> Me donne 000
     
    GetNextSequence("000"); --> Me donne 001
    GetNextSequence("001"); --> Me donne 010
    GetNextSequence("010"); --> Me donne 011
    GetNextSequence("011"); --> Me donne 100
    GetNextSequence("100"); --> Me donne 101
    GetNextSequence("101"); --> Me donne 110
    GetNextSequence("110"); --> Me donne 111
    Ceci avec le nombre d'éléments variant :

    Autre exemple avec 4 éléments si j'apelle l'algo à la suite :

    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
     
    0000
    0001
    0010
    0011
    0100
    0101
    0110
    0111
    1000
    1001
    1010
    1011
    1100
    1101
    1110
    1111
    Donc je bloque totalement, je n'arrive pas à trouver un début de réponse, toutes mes pistes sont fausses, donc si quelqu'un peut m'aider là dessus, ce serait cool.

    Les séquences peuvent être traitées en chaines de caractère, tableaux, entiers...
    Merci d'avance.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 84
    Par défaut
    Je ne comprend pas bien :

    tu veux transformer des string ("0010") en binaire (0010) ?

    sinon, pourquoi tu passes une string à getNextSequence ?

    essaye d'ecrire ton algo en langage naturel je comprendrai mieux...

  3. #3
    Membre éclairé Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Par défaut
    Je ne te suis pas...

    Comment puis-je avoir :

    "0011011100"

    à partir de :

    "0011011011"

    Je vois pas ou tu veux en venir...

  4. #4
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    salut

    il te suffit de faire une fonction compte de 1 en 1 à partir d'un début que tu lui fournis

    Et ensuite, suffit de transformer cet int en nombre binaire

    Ca devrait pas etre trop difficile ?

    Ecriture Binaire

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 84
    Par défaut
    Haaaaa ok


    ben la solution facile c'est d'écrire une fonction de convertion de string en int (en sachant que la string représente un nombre écrit en binaire) et vice versa

    tu convertis en int, tu ajoute 1, tu convertis en string

    c'est hyper simple à coder ce genre de fonction

    note : getFirstSequence te donne la taille de la chaine de sortie, à passer à ta fonction intToBinString(int toConvert, int sizeString)

  6. #6
    Membre éclairé Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Par défaut
    Pas du tout, c'est d'ajouter 1 à une séquence binaire...

    0010 + 1 = 0011 en binaire.

    Ce n'est pas juste transformer un string en long ou décimal.

    Je pars de n élément avec le bit 0 de départ et je veux toute la séquence de bit pour arriver à un résultat de n 1 :

    Avec n = 3 :

    000
    001
    010
    011
    100
    101
    110
    111

    Voilà, cet algo sera ensuite traduit en VBA pour info.


    Merci !

  7. #7
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    amis toulousaing, tu voudrais ça, en fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    private string[] GenerateValues(int nbToReach)
            {
                string val = string.Empty;
                val = val.PadLeft(nbToReach, '1');
                int valToReach = Convert.ToInt16(val, 2);
                string[] result = new string[valToReach + 1];
                for (int i = 0; i <= valToReach; i++)
                {
                    result[i] = Convert.ToString(i, 2).PadLeft(nbToReach, '0');
                }
                return result;
            }
    Exacte ?

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 11/06/2014, 16h31
  2. Générer des fichiers binaires
    Par scolyo dans le forum Langage
    Réponses: 4
    Dernier message: 04/11/2010, 09h10
  3. Générer la prochaine séquence binaire
    Par Contrec dans le forum Algorithmes et structures de données
    Réponses: 12
    Dernier message: 05/12/2008, 09h30
  4. Générer des fichiers PDF
    Par bobbafet dans le forum C++Builder
    Réponses: 5
    Dernier message: 29/11/2004, 23h53
  5. [Java] Générer des rapports à la crystal reports
    Par Vessaz dans le forum Autres outils décisionnels
    Réponses: 4
    Dernier message: 11/10/2004, 19h07

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