suite
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

suite



  1. #1
    karimaell

    Red face suite


    ------

    Bonjour !

    Je débute en python, j'ai passé des heures à essayer de programmer la fonction mais en vain je n'y arrive pas quelqu'un pourrait me donner quelque piste s'il vous plait, voila l'énoncer :

    Soit la suite Sn =somme(1/k)

    Ecrire une fonction python rang qui prend en entrée un réel x et qui retourne le plus petit entier naturel n tel que Sn>x

    Merci d'avance

    -----

  2. #2
    JPL
    Responsable des forums

    Re : suite

    Et su tu nous montrais ce que tu as tenté ?
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  3. #3
    karimaell

    Re : suite

    J'ai tenté énormément de choses, voila le dernier des programmes auquel j'ai pensé
    j'ai d'abord créer une fonction somme s(n) qui je pense est correct, puis je lui fais appel dans la deuxième fonction.

    Code:
    def s(n):
        S = 0
        for k in range(1,n+1):
            S = S + 1 / k
        return S
    
    
    def rang(x):
        i = 0
        while s(n)>x:
            i += 1
            if s(n)>x:
                return n
    Dernière modification par JPL ; 05/06/2019 à 17h01. Motif: Ajout de la balise Code (#) pour garder l'indentation

  4. #4
    invite73192618

    Re : suite

    Tu devrais avoir un message d'erreur qui te dit que n n'est pas définit dans ta fonction rang. Remplace i par n et ça devrait marcher.

  5. A voir en vidéo sur Futura
  6. #5
    invite73192618

    Re : suite

    PS: il y a aussi une erreur sur le sens d'une comparaison, une comparaison inutile, et éventuellement un problème de tabulation. Et c'est très laid

    Code:
    def rang2(x, s=0, k=1):
        if x > s:
            return rang2(x, s+1/k, k+1) 
        else: 
            return k-1

  7. #6
    invite73192618

    Re : suite

    PPS: en plus compliqué à comprendre mais mieux sur certains aspects

    Code:
    def rang(x):
        def myiter(x, s=0, k=0):
            while x > s: x, s, k = x-s, 1/(k+1), k+1
            yield k
        return next(myiter(x))

  8. #7
    CM63

    Re : suite

    En python, une mauvaise tabulation ce n'est pas seulement laid, mais ça marche "juste pas" (comme disent les jeunes ).

  9. #8
    invite73192618

    Re : suite

    Sur le fond tu as raison bien sur, mais 1) je ne suis pas 100% certain si l'indentation qu'on voit est celle qu'il a essayé de mettre (le primo-posteur n'a pas mis les balises code lui-même) 2) dans son cas, par exception, le code marcherait même avec l'indentation incorrecte (faire la dernière comparaison hors boucle ne change rien pas le résultat, seulement la performance et la lisibilité logique)

Discussions similaires

  1. Réponses: 6
    Dernier message: 09/02/2019, 20h25
  2. Suite récurrente linéaire d'ordre 2 et suite intermédiaire géométrique
    Par Seirios dans le forum Mathématiques du collège et du lycée
    Réponses: 9
    Dernier message: 14/09/2008, 13h40
  3. quelle est la manipulation a suivre pour passer la suite 1 a la suite 2
    Par inviteca097788 dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 30/05/2008, 23h24
  4. egalité de suite (2 façons d'exprimer la même suite)[1ere S]
    Par invite7534a64a dans le forum Mathématiques du collège et du lycée
    Réponses: 8
    Dernier message: 21/05/2006, 09h13