Полиномы Лежандра - Lisp
Формулировка задачи:
Здравствуйте, помогите пожалуйста с написание кода функции Лежандра, нужно использовать рекурсию на языке LISP.
Решение задачи: «Полиномы Лежандра»
textual
Листинг программы
(defun leg-poly (n x &optional (p 1) (c x)) (cond ((zerop n) p) ((= n 1) c) (t (let ((d (+ n 1))) (leg-poly (- n 1) x c (- (* (/ (+ n n 1) d) x c) (* p (/ n d))))))))
Объяснение кода листинга программы
В коде определена функция LAG-POLY. Она принимает три аргумента:
- N — количество членов в полиноме
- X — переменная, которую необходимо подставить в полином
- P — коэффициент при X в полиноме Если N равно нулю, то функция возвращает P. Если N равно 1, то функция возвращает C. В противном случае, функция возвращает результат вычисления полинома, который рассчитывается следующим образом:
- Вычисляется значение переменной D, равное N+1.
- Рекурсивно вызывается функция LAG-POLY с аргументами: N-1, X, C.
- Вычисляется значение переменной P, равное N/D.
- Вычисляется значение переменной Q, равное (N*C)/D.
- Результатом функции является сумма P и Q.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д