Esto puede ser un poco tarde para responder, pero la forma más simple y precisa de calcular la raíz cuadrada es el método de Newton.
Tiene un número que desea calcular su raíz cuadrada (num)y puede adivinar su raíz cuadrada (estimate). La estimación puede ser cualquier número mayor que 0, pero un número que tiene sentido acorta significativamente la profundidad de la llamada recursiva.
new_estimate = (estimate + num / estimate) / 2
Esta línea calcula una estimación más precisa con esos 2 parámetros. Puede pasar el valor de new_estimate a la función y calcular otro new_estimate que sea más preciso que el anterior o puede hacer una definición de función recursiva como esta.
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)
Por ejemplo, necesitamos encontrar la raíz cuadrada de 30. Sabemos que el resultado es entre 5 y 6.
newtons_method(30,5)
el número es 30 y la estimación es 5. El resultado de cada llamada recursiva es:
5.5
5.477272727272727
5.4772255752546215
5.477225575051661
El último resultado es el cálculo más preciso de la raíz cuadrada del número. Es el mismo valor que la función incorporada math.sqrt ().