28 août 2009

17 messages - Retourner à l'article

Voir tous les messages - Retourner à l'article

  • le web et les (faux) combinateurs de point-fixe.

    le 19 novembre 2018 à 12:24, par Pierre Lescanne

    Vous écrivez « on ne connaît pas à l’avance à quel « n » correspond cet « epsilon » de 10**-20 et on ne peut pas fournir à une function de récursion ce « n » ni la suite des nombres entiers de 0 à n, seul le while possède un test d’arrêt des rebouclages. ». J’aurais envie de penser que vous ne maîtrisez pas les arcanes de la récursivité. Voici en Python une fonction qui calcule la racine carrée avec la précision que vous souhaitez (ici 100 000 chiffres, donnée par la constante epsilon). Non seulement la pile ne déborde, mais la réponse est immédiate.

    epsilon = 10 ** (-100000)
    semence = 2

    def racineCarreRecursion(x,n,y) :
       if (y**2 - x) < epsilon :
           return y
       else:
           return racineCarreRecursion(x,n+1,(x/y + y)/2.0)

    def racineCarre(x) :
       return racineCarreRecursion(x,0,semence)
    Répondre à ce message
Pour participer à la discussion merci de vous identifier : Si vous n'avez pas d'identifiant, vous pouvez vous inscrire.