Определить рекурсивную функцию, которая вычисляет приближенное значение - Lisp

Узнай цену своей работы

Формулировка задачи:

Определить рекурсивную функцию, которая вычисляет приближенное значение 1/e путем суммирования первых членов ряда до тех пор, пока слагаемые превышают ε = 0,0001.

Решение задачи: «Определить рекурсивную функцию, которая вычисляет приближенное значение»

textual
Листинг программы
(defun inve (eps k s a)
  (if (< (abs a) eps) s (inve eps (+ k 1) (+ s a 0.0) (/ (- a) k)))) 
 
(defun inv-e (eps) (inve eps 1 0 1))

Объяснение кода листинга программы

В данном коде определены две функции:

  1. inve — рекурсивная функция, которая принимает четыре аргумента: eps, k, s и a. Если абсолютное значение a меньше eps, то возвращается значение s. Иначе, вызывается рекурсивно функция inve с аргументами: eps, k+1, s+a и k.
  2. inv-e — функция, которая вызывает функцию inve с аргументами: eps и 1. Список вызовов функций и их аргументов:
  3. inve(eps=1.0e-6, k=1, s=0, a=1)
  4. inve(eps=1.0e-6, k=2, s=1, a=1.0)
  5. inve(eps=1.0e-6, k=3, s=1.0, a=2.0)
  6. inve(eps=1.0e-6, k=4, s=2.0, a=3.0)
  7. inve(eps=1.0e-6, k=5, s=3.0, a=4.0)
  8. inve(eps=1.0e-6, k=6, s=4.0, a=5.0)
  9. inve(eps=1.0e-6, k=7, s=5.0, a=6.0)
  10. inve(eps=1.0e-6, k=8, s=6.0, a=7.0)
  11. inve(eps=1.0e-6, k=9, s=7.0, a=8.0)
  12. inve(eps=1.0e-6, k=10, s=8.0, a=9.0)
  13. inve(eps=1.0e-6, k=11, s=9.0, a=10.0)
  14. inve(eps=1.0e-6, k=12, s=10.0, a=11.0)
  15. inve(eps=1.0e-6, k=13, s=11.0, a=12.0)
  16. inve(eps=1.0e-6, k=14, s=12.0, a=13.0)
  17. inve(eps=1.0e-6, k=15, s=13.0, a=14.0)
  18. inve(eps=1.0e-6, k=16, s=14.0, a=15.0)
  19. inve(eps=1.0e-6, k=17, s=15.0, a=16.0)
  20. inve(eps=1.0e-6, k=18, s=16.0, a=17.0)
  21. inve(eps=1.0e-6, k=19, s=17.0, a=18.0)
  22. inve(eps=1.0e-6, k=20, s=18.0, a=19.0)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.786 из 5
Похожие ответы