#python #алгоритм #математика #рекурсия
Отвечая на этот вопрос, я попытался реализовать рекурсивную функцию для вычисления косинуса при помощи ряда Маклорена до указанной точности (эпсилон). Формула: Никак не могу придумать, как реализовать проверку точности для завершения/выхода из рекурсии. Вот набросок функции без проверки точности: import math def cosine_rec(x, i=0, err=10**9, eps=1e-5): if i < 1: return 1 # как проверить текущую ошибку ??? res = (-1)**i * (x**(2*i) / math.factorial(2*i)) return res + cosine_rec(x, i+1, err=err, eps=eps) PS с итеративным алгоритмом все просто, поэтому нерекурсивные решения прошу не предлагать.
Ответы
Ответ 1
def cosine_rec(x, i=0, err=10**9, eps=1e-5): if i < 0: return 1 res = x**(2*i) / math.factorial(2*i) if res <= eps: return (-1)**i * res return (-1)**i * res + cosine_rec(x, i+1, err=err, eps=eps)
Комментариев нет:
Отправить комментарий