Решение выражения с Lisp

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

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

Здравствуйте,помогите пожалуйста с реализацией вот этого на языке Lisp:
Вернее так

Решение задачи: «Решение выражения с Lisp»

textual
Листинг программы
  1. ;; Итерация:
  2.  
  3. (defun f (a n)
  4.   (iter (for i from 1 to n) (summing (/ (* i a) (+ a i)))))
  5.  
  6. ==> f
  7.  
  8. (f 3 10)
  9.  
  10. ==> 715867/40040
  11.  
  12. (f 3.0 10)
  13.  
  14. ==> 17.8787962037962
  15.  
  16. ;; Рекурсия
  17.  
  18. (defun f (a n &optional (i 0) (s 0))
  19.   (if (= i n) s
  20.     (let ((i1 (+ i 1))) (f a n i1 (+ s (/ (* i1 a) (+ a i1)))))))
  21.  
  22. ==> f
  23.  
  24. (f 3.0 10)
  25.  
  26. ==> 17.8787962037962
  27.  
  28. (f 3 10)
  29.  
  30. ==> 715867/40040

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

В первом фрагменте кода определена функция f, которая вычисляет значение выражения. Она принимает два аргумента: a и n. Внутри функции используется цикл iter, который выполняет итерацию от 1 до n. На каждой итерации выполняется операция суммирования, в которой результат вычисления выражения / (* i a) (+ a i) добавляется к сумме. Результатом работы функции является значение выражения. Во втором фрагменте кода определена функция f, которая также вычисляет значение выражения, но уже с использованием рекурсии. Функция принимает три аргумента: a, n и два необязательных аргумента i и s. Аргумент i по умолчанию равен 0, а аргумент s по умолчанию равен 0. Если i равно n, то возвращается значение s. В противном случае, внутри функции создается новая переменная i1, которая равна + i 1. Затем вызывается функция f с аргументами a, n, i1 и s с добавлением результата вычисления выражения / (* i1 a) (+ a i1). Результатом работы функции является значение выражения.

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


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

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

10   голосов , оценка 3.9 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут