Partage
  • Partager sur Facebook
  • Partager sur Twitter

Calculer la distance entre 2 chaines de caractère

Sous-titre

Sujet résolu
    16 juin 2019 à 13:12:06

    Salut, Alors voila...

    Il y'a une suite de lignes de 64 caractères qui contient des chiffres et des lettres en minuscule, le nombre de lignes créés de 1 caractère est 36 lignes(0123456789abcdefghijklmnopqrstuvwxyz)... Alors pour 64 caractères le nombre de lignes créés est de 32^64 soit 4,0119919145476304800650533877024e+99 lignes... Mais sa s'est le nombre de lignes compris entre 0 et z,z e+63... Je voudrai connaitre comment calculer le nombre de lignes compris entre "x" et "y"... Merci de vos réponses. 

    -
    Edité par Sand Wraith 18 juin 2019 à 23:55:41

    • Partager sur Facebook
    • Partager sur Twitter
      17 juin 2019 à 21:59:41

      J'ai un peu de mal à comprendre ta question. De la même manière que le nombre de lignes entre 0 et N est égal à N + 1, le nombre de lignes comprises entre x et y sera de y - x + 1, indépendamment du nombre de caractères.

      Que cherches-tu à faire ?

      • Partager sur Facebook
      • Partager sur Twitter
        Staff 17 juin 2019 à 22:18:52

        Bonjour,

        Mauvais titre

        Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.

        Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).

        De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.

        Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.

        Pour modifier votre titre, éditez le premier message de votre sujet.

        (titre originel : Regardez impeu par ici svp ✌)

        • Partager sur Facebook
        • Partager sur Twitter
          18 juin 2019 à 23:52:11

          Salut @BunshinKage  oui sa je connaissais déjà, mais on fait sa que quand x et y sont des chiffres... Dans mon cas s'est des chiffres et des lettres en minuscule, Alors je ne croie pas qu'on peut soustraire des lettres... Si ?

          Et je suis vraiment désole @AbcAbc6 mais il y'a plus de 24h que j’attendais une réponse alors j'en avait impeu marre...:D, Mais s’était pas mon vrai titre, je l'ai modifier pour attirer plus de monde...:-°

          • Partager sur Facebook
          • Partager sur Twitter
            19 juin 2019 à 2:05:46

            Salut,

            Je n'ai rien compris non plus. Essaie de reformuler, et si possible de nous donner un petit exemple de ce que tu cherches à faire.

            • Partager sur Facebook
            • Partager sur Twitter
              19 juin 2019 à 17:52:34

              Ah si, je crois que j'ai compris !

              Tu génères tes chaînes de caractère dans l'ordre (de 00..000 à zzz..zzz) et tu voudrais savoir, étant donné deux chaînes de caractères, le nombre de lignes entre les deux c'est bien ça ?

              Je dirais que tu peux voir chacune de tes chaînes de caractère comme la représentation d'un nombre en base 36, ou le 0 correspond à 0 et où le z correspond à 35. À partir de là, tu peux calculer la position de chaque chaîne de caractère dans ta liste (puisque son numéro de ligne est le numéro que la chaîne représente + 1) et faire la différence entre les deux de la même manière que tu le ferais normalement :)

              • Partager sur Facebook
              • Partager sur Twitter
                19 juin 2019 à 18:51:03

                Distance entre 2 chaines ...  c'est le nouveau titre ; ça m'a fait penser à distance de levenshtein, mais a priori, ce n'est pas ça.

                Sandwraith est embêté par les lettres mais pas par les chiffres,  donc effectivement, ses chaines de caractères sont des nombres codés en base 36.

                Ceci dit, je ne pense pas que 'base 36' ça lui parle. Sinon il aurait trouvé par lui-même.

                Base hexadécimale, c'est un mot clé qui devrait permettre de trouver plein de pages utiles. Dans la base hexadecimale, on a les 10 chiffres courants, et on a 6 autres chiffres : a b c d e f. (Classiquement, on les appelle des lettres, mais volontairement , je les appelle des chiffres)

                Et si on a le nombre ab9 par exemple, alors ce nombre vaut 10*16² + 11*16 + 9.

                Dans notre cas, on n'est pas en base 16 mais en base 36. C'est beaucoup moins courant, mais la logique est la même.

                En base décimale ( les nombres classiques qu'on manipule tous les jours), on a 10 symboles (0 1 2 3 4 5 6 7 8 9), et quand on va de droite à gauche, on  a les unités, les dizaines, les centaines (100 , parce que 10*10=100) , puis les milliers (1000= 10*10*10) etc  : 123 , c'est 1*10²+ 2*10 + 3

                En base 16, on a 16 symboles, et de droite à gauche , on a les unités , les multiples de 16, puis les multiples de 16² : 123 * 1*16²+ 2*16+3 ; les lettres a b c d e et f valent respectivement 10 11 12 13 14 et 15.

                Et en base 36, on a 36 symboles, et la logique est la même : 123, c'est 1*36²+2*36+3 ; les lettres a b c d e ... z valent respectivement 10 11 12 ... et 35.

                Donc, prenons un nouvel exemple : g8b = 16*36²+8*36+11

                • Partager sur Facebook
                • Partager sur Twitter
                  19 juin 2019 à 20:47:37

                  Salut, Merci beaucoup a @BunshinKage et@tbc92 pour votre réponse détaillé, s'est exactement se que je cherchai a savoir...

                  EDIT: Mais pourquoi z vaut 35 et non pas 36 ?

                  -
                  Edité par Sand Wraith 19 juin 2019 à 20:50:59

                  • Partager sur Facebook
                  • Partager sur Twitter
                    19 juin 2019 à 22:13:41

                    Salut,

                    a vaut 10, b vaut 11, et en gros la lettre i vaut 9 + i, donc z vaut 9 + 26 = 35.

                    • Partager sur Facebook
                    • Partager sur Twitter
                    Tutoriel Ruby - Bon tutoriel C - Tutoriel SDL 2 - Python avancé - Faîtes un zeste, devenez des zesteurs
                      20 juin 2019 à 20:14:01

                      Salut @yo@n97one,

                      alors pourquoi c'est base36 et non pas base35 ?

                      • Partager sur Facebook
                      • Partager sur Twitter
                        20 juin 2019 à 20:37:53

                        Parce qu'il y a 36 caractères. En base 10, les chiffres vont de 0 à 9, il y a bien 10 chiffres.

                        • Partager sur Facebook
                        • Partager sur Twitter
                        Tutoriel Ruby - Bon tutoriel C - Tutoriel SDL 2 - Python avancé - Faîtes un zeste, devenez des zesteurs

                        Calculer la distance entre 2 chaines de caractère

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        • Editeur
                        • Markdown