La réponse est peut-être un peu tardive, mais le moyen le plus simple et le plus précis de calculer la racine carrée est la méthode de Newton.
Vous avez un nombre dont vous voulez calculer sa racine carrée (num)
et vous avez une estimation de sa racine carrée (estimate)
. L'estimation peut être n'importe quel nombre supérieur à 0, mais un nombre qui a du sens raccourcit considérablement la profondeur d'appel récursif.
new_estimate = (estimate + num / estimate) / 2
Cette ligne calcule une estimation plus précise avec ces 2 paramètres. Vous pouvez passer la valeur new_estimate à la fonction et calculer une autre new_estimate qui est plus précise que la précédente ou vous pouvez créer une définition de fonction récursive comme celle-ci.
def newtons_method(num, estimate):
# Computing a new_estimate
new_estimate = (estimate + num / estimate) / 2
print(new_estimate)
# Base Case: Comparing our estimate with built-in functions value
if new_estimate == math.sqrt(num):
return True
else:
return newtons_method(num, new_estimate)
Par exemple, nous devons trouver la racine carrée de 30. On sait que le résultat est compris entre 5 et 6.
newtons_method(30,5)
le nombre est 30 et l'estimation est 5. Le résultat de chaque appel récursif est:
5.5
5.477272727272727
5.4772255752546215
5.477225575051661
Le dernier résultat est le calcul le plus précis de la racine carrée du nombre. C'est la même valeur que la fonction intégrée math.sqrt ().