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

Python Discussion :

Je bloque lors de la retranscription de mon algo ecrit en francais en python.


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Je bloque lors de la retranscription de mon algo ecrit en francais en python.
    Bonjour,

    Voila, j'ai pour but de coder un algo, qui est le suivant :

    je dois fournir un chiffre a douze numéro ex : 098765432109 aussi égale a ABCDEFGHIKLM

    l'algorithme 1 fait la chose suivante : il prend EFGH ( ici ça serait égale avec l'exemple plus haut avec les numéro a : 6543 ) et fait G + 1 puis H -1 ( en même temps ou bien a la suite ) en sachant que chaque numéro peut allez jusqu’à 9, une fois G/H saturé, on passe a H+1/G-1, F+1/G-1 puis a E+1/F-1 puis a E+1/G-1, E+1/H-1, F+1/H-1, etc.. en jouant seulement sur cela jusqu’à ne plus trouvé de combinaisons possible.

    Je dois aussi affiché chaque combinaison, c'est a dire, je part de ça : 098765432109 j'affiche le suivant ( ici je vais faire g+1 et h-1 ) 098765522109 et ainsi de suite je reprend le dernier obetnu et je fais g+1 h-1. une fois que je n'ai plus de combinaisons possible avec celui ci, je passe a F et G par exemple et là encore je fais tout etc...

    Donc si vous pouviez m'aidez a résoudre ce problème. Je vous fourni mon algo non fonctionnel en piece jointe générer des chiffres avec un algorithme .py

    Cordialement.

  2. #2
    Membre éclairé

    Inscrit en
    Novembre 2008
    Messages
    417
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 417
    Points : 826
    Points
    826
    Par défaut
    Ta description de l'algorithme n'est pas très claire. On ne voit pas à quoi ça sert.
    Mais enfin tu as plusieurs possibilités
    Soit tu travailles avec tes nombres directement. Au lieu de faire H+1, tu peux faire ABCDEFGHIKLM + 10000 ou même ABCDEFGHIKLM + 10^(longueur du nombre - position de H)
    Soit tu transformes ton nombre en liste
    list(str(123456789))
    voire même
    [int(e) for e in list(str(123456798))] pour avoir une liste d'entiers directement
    et tu travailles sur chacun des nombres...

  3. #3
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 038
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 038
    Points : 9 347
    Points
    9 347
    Par défaut
    Comme fatbob, je ne comprends pas trop ce que tu veux faire.
    Je copie ici ton code pour faciliter les choses :
    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
     
    # -*- coding: utf-8 -*-
    import os
     
    def algo1():
    	numeroDeDepart = [ int(input("Entrer les 4 premiers chiffre : ")), int(input("Entrer les 4 second chiffre : ")),
    	int(input("Entrer les 4 dernier chiffre : ")) ]
    	nbRepetition = int(input("Combien de numéro souhaite tu : "))
    	i=0
    	while i != nbRepetition:
    		numeroDeDepart[2] += 10
    		numeroDeDepart[2} -= 1
    		print(numeroDeDepart)
    		i+1
    algo()
    os.system("pause")
    Le premier problème que je vois, c'est que tu appelle la fonction algo() ; mais que cette fonction algo() n'existe pas.
    L'autre problème, c'est que tu ne gères pas les retenues comme il faut quand tu additionnes tes nombres.

    En commençant à 6543, tu obtiens 6552 puis 6661 puis 6670. Jusque là, ok à priori.
    Mais le suivant va être 6679, et je pense que ce n'est pas ce que tu voulais.
    Ensuite 6688 6697 ... et là, nouveau problème, tu vas obtenir 6706 , c'est ce que tu voulais ?
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

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