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 :

Qu'est-ce qui se passe en vrai dans ce code ?


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2013
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Février 2013
    Messages : 317
    Par défaut Qu'est-ce qui se passe en vrai dans ce code ?
    Re bonjour, quelqu'un pourrait-il me traduire en français les lignes commençant par trois points d'interrogation; ou que font concrètement ces lignes.
    D'avance merci.
    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
     
    def permuter(chaine):
     
    ???    liste=[chaine[0]]
     
        n=2
        l=1
     
        while n <=len(chaine):
     
    ???        for mot in list(liste):
     
    ???            for i in range(n):
     
    ???                  liste.append(mot[:i]+chaine[l]+mot[i:])
     
            n+=1
            l+=1
     
     
    ???    return [r for r in liste if len(r)==len(chaine)]

  2. #2
    Membre émérite
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2012
    Messages : 381
    Par défaut
    C'est un extrait du manuscrit de Voynich ?

    Plus sérieusement si "chaine" est une chaîne de caractères (ce que laisse supposer le "len(chaine)"), alors "chaine[0]" ne pourra jamais renvoyer une liste dont on pourrait extraire des mots.

    À moins que la liste ne soit créée au fur et à mesure. Du genre : permuter("bonjour") va créer une liste contenant b, ob, nob, jnob, ojnob, uojnob et ruojnob. Ce qui expliquerait pourquoi on ne renvoie que l'élément de la liste qui a la même longueur que la chaîne du début. Mais ce n'est même pas sûr que ce soit ça.

    Il n'y aurait pas plus compliqué ?

  3. #3
    Membre très actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2013
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Février 2013
    Messages : 317
    Par défaut
    Citation Envoyé par xdelatour Voir le message

    Il n'y aurait pas plus compliqué ?
    En voici un autre qui est plus ou moins sensé faire la même chose:
    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
     
    def anagrammes(chaine, i):
    ???    liste = [chaine]
    ???    mot = chaine
    ???    for ii  in range(i, -1, -1):  
    ???        mot = mot[:ii] + mot[ii + 1] + mot[ii] + mot[ii + 2:]
    ???        liste.append(mot)
        i += 1
        if i < len(chaine) - 1:
    ???        for mot in list(liste):
    ???            liste +=  anagrammes(mot, i)
     
        return liste
     
    anagrammes("iles", 0)

  4. #4
    Membre émérite
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2012
    Messages : 381
    Par défaut
    Déja, dans le premier code, la fonction range() prend un seul paramètre. Or, il y en a trois dans le second code.

    Le but est de deviner ce que ça fait ou d'utiliser ce charabia pour écrire quelque chose de fonctionnel dans un langage précis ?

    S'il s'agit de seulement traduire en français les mots-clés qui sont en anglais ça va être simple :
    • for = pour chaque valeur de
    • in=dans
    • append=ajouter
    • list=liste
    • return=renvoyer
    • len=longueur
    • while=tant que


    Et on pourra constater que ça n'a toujours pas de sens même en français.

    Par exemple dans le premier code, il y a une boucle ligne 10 "pour chaque mot de la liste liste". Cette boucle est imbriquée dans une autre boucle qui est répétée autant de fois qu'il y a de caractères dans chaine, sachant qu'en plus on commence cette boucle avec la valeur 2

    Rien que pour comprendre ça, ça me donne mal au crâne, mais en plus la liste est modifiée (ajout ligne 14) à l'intérieur de la boucle qui dépend des mots composant la liste (celle de la ligne 10)

  5. #5
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 288
    Par défaut
    Bonjour

    Déja, dans le premier code, la fonction range() prend un seul paramètre. Or, il y en a trois dans le second code.
    Ce n'est pas impossible.
    Si ce code est en langage python, alors range renvoie une liste. Tu peux indiquer le point d'arrivée et il partira de zéro, de 1 en 1. Sinon, tu peux indiquer le point de départ, le point d'arrivée et l'incrément. (3 paramètres).
    Quand à Valentin03, on ne peut pas lire des tutoriels python à sa place. Il lui suffit de lire. Ne t'épuise pas à traduire.

  6. #6
    Membre très actif
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2013
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Février 2013
    Messages : 317
    Par défaut
    En fait, ce que je voudrais, c'est un algo EN PSEUDO CODE (c'est à dire en langage "commun" compréhensible par un enfant de 7 ans parlant couramment le français.) qui donne toutes les combinaisons d'une chaine de caractère de longueur n. (avec ou sans doublons,; en passant par des tableaux ou pas)
    Parce que ça fait un bon moment que je m'explose le cerveau sur des syntaxes à dormir debout; toutes plus absconses les unes que les autres.

    EDIT: @: xdelatour: Traduire en français La ligne: while n <=len(chaine)
    Donne en français: Tant que n est plus petit ou égal à la longueur de la chaine "chaine", faire ce qui suit.
    Et ce que fait concrètement la ligne,: C'est une boucle qui exécute le charabia qui suit.
    Traduire mot à mot comme tu le fais ça s'appelle en français: Prendre les gens pour des cons.

Discussions similaires

  1. XNA et C++ qu'est ce qui se passe?
    Par therev123 dans le forum Développement 2D, 3D et Jeux
    Réponses: 1
    Dernier message: 02/02/2014, 17h36
  2. Qu'est ce qui ce passe quand on installe?
    Par sarra2104 dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 14/06/2012, 11h49
  3. OBIEE ? Qu'est ce qui se passe ?!
    Par SamuelShi dans le forum Autres outils décisionnels
    Réponses: 1
    Dernier message: 19/07/2010, 13h32
  4. Qu'est ce qui prend de la place dans une db access
    Par lepirlouit dans le forum Access
    Réponses: 8
    Dernier message: 25/07/2006, 10h19
  5. Qu'est ce qui se passe avec ce code ??
    Par adlich dans le forum Langage
    Réponses: 2
    Dernier message: 30/04/2006, 12h04

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