Рекурсивная функция для вычисления натурального квадратного корня в Python

Вот функция в Python, которая использует рекурсию для вычисления квадратного корня числа:

def _sqrt_recursion(n):
    if n == 0 or n == 1:
        return n
    else:
        return _sqrt_recursive_helper(n, 0, n)
def _sqrt_recursive_helper(n, start, end):
    mid = (start + end) // 2
    square = mid * mid
    if square == n:
        return mid
    elif square < n:
        return _sqrt_recursive_helper(n, mid + 1, end)
    else:
        return _sqrt_recursive_helper(n, start, mid - 1)

Функция _sqrt_recursionпринимает на вход число nи возвращает его квадратный корень. Сначала он проверяет, равен ли n0 или 1, и в этих случаях возвращает n. В противном случае он вызывает вспомогательную функцию _sqrt_recursive_helperдля выполнения рекурсивных вычислений.

Вспомогательная функция _sqrt_recursive_helperпринимает три параметра: число n, начальную точку диапазона поиска startи конечную точку диапазона поиска. диапазон поиска конец. Он использует подход бинарного поиска, чтобы сузить диапазон и итеративно найти квадратный корень. Вычисляется средняя точка mid, а квадрат midсравнивается с n. В зависимости от результата диапазон поиска корректируется путем рекурсивного вызова _sqrt_recursive_helperс обновленными начальными и конечными значениями.

Вот пример использования функции:

print(_sqrt_recursion(16))  # Output: 4
print(_sqrt_recursion(25))  # Output: 5
print(_sqrt_recursion(2))   # Output: 1.4142135623730951