> 1 <

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

irishka753

Members


Статус

10 сообщений

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

#780   2009-12-18 14:30 GMT+3 часа(ов)      
Определить функцию N(P,K), получающую P в степени K, где P - числовой атом, не используя функцию EXPT
Нашла нечто подобное:
( defun N(P K)
(if (=K1) P (* P(N P(-K 1))))))

Но мне это решение не понятно. Помогите разобраться )

VH

Members


Статус

289 сообщений

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

#791   2009-12-20 14:51 GMT+3 часа(ов)      
(defun N (P K)
(if (= K 1) P ; если K <уже> равно 1, возвращаем P
(* P (N P (- K 1))))) ; в противном случае умножаем P на результат вызова функции N с уменьшенным на единицу K и это возвращаем <на предыдущий уровень или пользователю>

Так вроде более корректно:
(defun N (P K)
(if (zerop K) 1
(* (N P (1- K)) P)))

Обобщение:
(defun N (P K)
(if (not (zerop P))
(cond
((plusp K) (* (N P (1- K)) P))
((zerop K) 1)
((minusp K) (/ (N P (1+ K)) P)))))

irishka753

Members


Статус

10 сообщений

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

#802   2009-12-21 19:44 GMT+3 часа(ов)      
Большое, большое, просто огромное СПАСИБО!!!

irishka753

Members


Статус

10 сообщений

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

#806   2009-12-22 12:23 GMT+3 часа(ов)      
VH, посмотри пож-та моё предыдущее задание
> 1 <


Онлайн :

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