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 ().