> 1 <

Автор Сообщение

msxp

Members


Статус

2 сообщений

Где: Russia
Род занятий:
Возраст:

#5368   2011-12-19 22:14 GMT+3 часа(ов)      
День добрый!

Прошу помочь подправит код вычисления суммы ряда:



Вот что получилось у меня:

(defun S (n x)
((zerop n) (list 1 1))
(setq L (S (- n 2) x))
(setq w1 (car L))
(setq w (/ (* x x w1) n))
(list w (+ w (cadr L)))
)
 
(S 100 0.15)
(rds)


Но выводит не совсем правильно как я понял:
S
(0 1.0113135)
NIL


Использую интерпритатор: mulisp.

И по возможности подскажите по другой задаче или дайте ссылку на литературу или похожие примеры.
Исключить из данного списка такой элемент, чтобы сумма элементов, которая осталась, была равна 10
Список [3, 5, 2, 7]

megamanx

Members


Статус

307 сообщений

Где: Russia
Род занятий:
Возраст:

#5369   2011-12-20 17:15 GMT+3 часа(ов)      
Например, решение может иметь такой вид
(defun S (x n <предыдущее значение x> <счётчик> <сумма>)
(if (<счётчик> > n) <сумма>
(S x n <новое значение x> <новое значение счётчика> <сумма+старое значение x>)))

Вторая задача решает кучей способов, например
(defun foo(L N)
(let ((x (вычисление суммы элементов L)))
(remove-if-not #'(анонимная функция) L)))

что читать: мир лиспа, Practical Common Lisp, ANSI Common Lisp это основные учебники. Есть ещё интернет, гугл и английский язык с кучей ресурсов.
I wish I'd made you angry earlier

msxp

Members


Статус

2 сообщений

Где: Russia
Род занятий:
Возраст:

#5372   2011-12-20 18:05 GMT+3 часа(ов)      
megamanx
Благодарю. По первой разобрался.
А за вторую почитаю.
> 1 <


Онлайн :

0 пользователь(ей), 51 гость(ей) :