Algorithme -Langage Python


  • S

    Bonjour à tous , je suis arrivée à une question de mon exercice ou je ne comprend plus voici la question :

    Proposer un algorithme en langage Python permettant de calculer pour tout n ∈ N{0} la somme suivante :
    S= 1 + 1/2 + ··· + 1/i + ··· + 1/n

    Quelle est la valeur du plus petit entier n telle que S ≥ mois + jour de votre naissance ? Avec Janvier = 1 · · · Décembre = 12.

    Alors le premier problème c'est que je comprend pas la question qu'est-ce-que je dois faire sachant qu'on à peine vu le langage python on a juste recopier un programme qui n'a rien à voir avec celui là . Après plusieurs recherche je pense que je dois faire une boucle de la forme :

    n=int(input("saisir la valeur de n:"))
    S=0
    for i in range (n):
    print('i=',i)
    S=S+1
    print('S='S)

    Je suis née le 09/09/2003

    donc 9+9 = 18
    Comment je fais pour que S ne dépasse pas 18 ?

    Sauf que je sais pas trop quoi mettre dedans dans l'exercice on parle de Janvier=1 et decembre=12 je dois remplacer n par ces valeurs ? , et qu'est ce que i ? les pointillés correspondent à quoi ?
    J'avoue que je suis perdue à cette question pourtant les autres étaient plus abordables mais elles n'ont aucun rapport . Si quelqu'un pouvait m'expliquer comment on procède ça serai génial car j'aimerai bien comprendre si un jour il le met dans un contrôle . Merci à tous et très bonne journée .


  • mtschoon

    selena09, bonjour,

    Je regarde ta question mais je ne vais te donner que quelques explications pour la compréhension de l'algorithme mais pas pour l'écrire en Python car je ne l'ai pas mis sur mon PC et je ne connais pas la syntaxe.

    Pour le i de la formule de S :
    Cela veut dire que S est la somme des termes de la forme 1i\dfrac{1}{i}i1, pour i prenant les valeurs entières de 1 à n.

    Soit V la valeur obtenue en ajoutant le mois et le jour de naissance .
    Par exemple, 1 février correspond à la valeur V=2+1=3

    Ensuite, si j’ai bien lu, tu dois trouver la plus petite valeur de n telle que S≥VS\ge VSV

    Dans l’algorithme, tu peux utiliser la boucle Tant que S < V, qui s’arrêtera dès que la condition ne sera pas réalisée.

    Je t’indique un algorithme possible en langage naturel

    S=0
    n=0
    Donner la valeur de V
    Tant que S < V
    n=n+1
    S=S+1/n
    Fin de Tant Que
    Afficher n

    Tu peux le tester à la main, avec une petite valeur de n
    Pour V=3 par exemple, tu doit obtenir n=11
    1+1/2+...1/10=2,928…
    1+1/2+...+1/11=3,10321…

    Je l'ai aussi taper avec AlgoBox (logiciel gratuit) qui permet de le tester.
    Je te le joins Python.jpg

    Il te reste à écrire cela en Python...


Se connecter pour répondre