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 :

Exercice python, je bloque !


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Exercice python, je bloque !
    Salut à tous!
    Mon professeur m'a demandé d'écrire un programme python, affichant les différentes manières d'obtenir 100 euros avec des billets de 10euros, de 5 euros et des pièces de 2 euros.

    Cela fait une demi heure que j'essaye ne serait-ce que d'écrire un premier jet, mais je bloque vraiment..

    voici mes premiers jets, mais ça n'avance pas :/


    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    a=2
    b=5
    c=10
    x=0
    e=0
    f=0
    g=0
     
    while(x!=100):
        x=a*e
        e=e+1
        if(x==100):
            print("100=",a,"*",e-1)
    x=0
    while(x!=100):
        x=b*f
        f=f+1
        if(x==100):
            print("100=",b,"*",f-1)
    x=0
     
    while(x!=100):
        x=c*g
        g=g+1
        if(x==100):
            print("100=",c,"*",g-1)
    x=0
    c=0
    g=0
    f=0
     
    while(x!=100):
        x=c*g+b*f
        g=g-1
        f=f+1
        if(x==100):
            print("100=",c,"*",g,"+",b,"*",f)
    x=0
    Dernière modification par wiztricks ; 12/01/2015 à 07h31.

  2. #2
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 42
    Par défaut
    Bonjour! Pour éditer du code tu as les balises de code (le dièse ou hashtag pour les jeunes )en haut quand tu édites ton message !
    Une idée : tu fais trois boucles imbriquées qui parcourent les multiples de 10, 5 et 2 et tu incrémentes si la somme de tes 3 indices vaut 1

    Une autre idée si tu aimes les maths et pas trop la programmation :

    Tu cherches le 100è terme de l'expression 1/(1-X**2) * 1/(1-X**5) * 1/(1 - X**10) développée en série de taylor ( ou de la série formelle associée si tu veux pas te soucier de convergence )
    Ca te donne tous les 10i + 5j + 2k = 100 ! avec i,j,k dans N. L'expression sera horrible mais le résultat juste

    Bonne chance

  3. #3
    Invité
    Invité(e)
    Par défaut
    Je n'ai pas compris l'équation de taylor xD
    Seulement 3 boucles imbriquées suffisent ?? J'aurai les 66 solutions? Des boucles IF ou While?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    while(x!=100):
        x=10*i+5*j+2*k
        i=i+1
        while(x!=100):
            x=10*i+5*j+2*k
            j=j+1
            while(x!=100):
                x=10*i+5*j+2*k
                k=k+1
            x=0
        x=0
    x=0
    Mmmmmh, je progresse?

  5. #5
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 42
    Par défaut
    Laisse tomber c'est hardcore dans mon exemple ! Mais si tu as un algorithme pour la division euclidienne de polynôme en puissance croissante ça devient facile (en gros)
    Pour faire simple :
    1/(1-X) = (1+X+X^2 + X^3 + .... )
    Et 1/(1-X^k) = (1 + X^k + X^2k + ...)
    Par produit des trois facteurs, le 100è terme en X vaudra ce que tu cherches (faut aimer les maths hein! )

    Des boucles de cheveux ! A ton avis ?

  6. #6
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 42
    Par défaut
    Tu as un indice pour les multiple de 10, de 5 et de 2 ! (i varie entre 0 et 10, j entre 0 et 20 et k entre 0 et 50)
    Donc 3 boucles whiles imbriquées.
    Et dans la dernière boucle tu testes si tu as bien 10*i + 5*j + 2*k = 100

  7. #7
    Invité
    Invité(e)
    Par défaut
    Je ne pense pas avoir le niveau en maths pour réaliser cela, mais si tu as deux trois liens pour que j'apprenne cette équation, ça me plairait pas mal!

    Mmmmh, je pense que je vais arrêter de chercher, j'y ai passer l'après-midi..

  8. #8
    Invité
    Invité(e)
    Par défaut
    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
    i=0
    j=0
    k=0
    x=0
     
    while(i<10):
        x=10*i + 5*j + 2*k
        i=i+1
        if(x==100):
            print("100=",10,"*",i,"+",5,"*",j,"+",2,"*",k)
            x=0
            while(j<20):
                x=10*i + 5*j + 2*k
                j=j+1
                if(x==100):
                    print("100=",10,"*",i,"+",5,"*",j,"+",2,"*",k)
                    x=0
                    while(k<50):
                        x=10*i + 5*j + 2*k
                        k=k+1
                        if(x==100):
                            print("100=",10,"*",i,"+",5,"*",j,"+",2,"*",k)
                            x=0
    Le programme ne m'affiche rien

Discussions similaires

  1. aide exercice python
    Par brunette83 dans le forum Général Python
    Réponses: 10
    Dernier message: 21/11/2012, 08h36
  2. aide exercice python
    Par brunette83 dans le forum Général Python
    Réponses: 1
    Dernier message: 13/11/2012, 22h40
  3. problème exercice python
    Par moushti dans le forum Général Python
    Réponses: 2
    Dernier message: 09/02/2011, 03h52
  4. aide exercice python
    Par cedric190985 dans le forum Général Python
    Réponses: 2
    Dernier message: 24/03/2010, 12h57
  5. exercice python premiere annee
    Par agui26 dans le forum Général Python
    Réponses: 3
    Dernier message: 10/01/2010, 11h52

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