Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 19.02.2014
Сообщений: 2

В Лисп реализовать функцию f (n)=5f (n−1)^3+4f (n−2)^2

19.02.2014, 01:48. Показов 1428. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В Лисп реализовать функцию
f (n)=5f (n−1)^3+4f (n−2)^2 ,
f (1)=2,
f (2)=4
Сначала определите функцию так, чтобы порождался рекурсивный
процесс — реализация f1, а затем преобразуйте процедуру к
итерационному процессу — реализация f2. С помощью системной
функции time сравните вычислительную сложность f1 и f2 при n=10
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.02.2014, 01:48
Ответы с готовыми решениями:

Даны действительные числа S, T, A0,.,A12. Получить P(X)= P(1) − P(T) + P^2 (S −T) − P^3(1) Где P(X) = A12X^12 + A11X^11 + . + A0
Пожалуйста посмотрите код, посоветуйте где что исправить, заранее спасибо) Даны действительные числа S, T, A0,..,A12. Получить P(X)=...

Построить график функции f (x,y) =(x−1)^3−(y−1)^5. Отформатировать график
ребят помогите пожалуйста решить задания по маткаду, буду очень всем благодарна Построить график функции f (x, y) =(x −1)3...

Найдите пропущенное число в ответе к задаче на диофантово уравнение 2415x − 2392y = −46
Форумчане, доброго времени суток! Прошу Вашей помощи в решении этой задачи. " Найдите пропущенное число в ответе к задаче...

4
19.02.2014, 01:59
Эта тема была перенесена из раздела О форуме и сайтах.

Перенес: Taatshi
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,683
Записей в блоге: 14
19.02.2014, 10:07
Совершенно аналогичная задача решена чуть ниже.

Добавлено через 19 минут
Вот два рекурсивных решения - "плохое" и "хорошее":

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
;; Плохое (многократное перевычисление):
 
(defun f (n)
  (cond ((= n 1) 2)
        ((= n 2) 4)
        (t (let ((fn-1 (f (- n 1)))
                 (fn-2 (f (- n 2))))
                (+ (* 5 fn-1 fn-1 fn-1) (* 4 fn-2 fn-2))))))
 
;; хорошее
 
(defun ff (n &optional (c 4) (p 2))
  (cond ((= n 1) p)
        ((= n 2) c)
        (t (ff (- n 1) (+ (* 5 c c c) (* 4 p p)) c))))
Вот статистика вызова (HomeLisp):

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
(f 5)
 
==> 34114102773320869165589504
 
*** Статистика обращений ***
LET ......................  4
+ ........................  4
* ........................  8
- ........................  8
F ........................  9
COND .....................  9
= ........................  16
 
(ff 5)
 
==> 34114102773320869165589504
 
*** Статистика обращений ***
- ........................  3
+ ........................  3
FF .......................  4
COND .....................  4
* ........................  6
= ........................  8
Результат одинаковый, но у "хорошей" функции статистика вызовов благоприятнее.
1
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
19.02.2014, 15:49
Лучший ответ Сообщение было отмечено как решение

Решение

Кстати, плохое решение не так уж плохо. В частности, ясность - его достоинство. А сделать эффективным его можно, кэшируя результаты. Вспомогательные функция и макрос из On Lisp:
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
(defun memoize (fn)
  (let ((cache (make-hash-table :test #'equal)))
    #'(lambda (&rest args)
        (multiple-value-bind (val win) (gethash args cache)
          (if win
              val
              (setf (gethash args cache) 
                    (apply fn args)))))))
(defmacro _f (op place &rest args)
  (multiple-value-bind (vars forms var set access) 
                       (get-setf-method place)
    `(let* (,@(mapcar #'list vars forms)
            (,(car var) (,op ,access ,@args)))
       ,set)))
Определив функцию f, пишем
Lisp
1
(_f memoize (symbol-function 'foo))
и функция f заменилась на свой кэширущий аналог.
3
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,683
Записей в блоге: 14
19.02.2014, 16:00
Цитата Сообщение от helter Посмотреть сообщение
ясность - его достоинство
- это да...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.02.2014, 16:00
Помогаю со студенческими работами здесь

Найти значение функции y = 3x6 − 6x2 − 7
Найти значение функции y = 3x6 − 6x2 − 7 при данном значении x. плиз!!

Цикл for: вычислить f (x) = x2 + b , где x = −10,−9,...,10
Вычислить f (x) = x2 + b , где x = −10,−9,...,10. Помогите пжл!

Получить f(t, −2⋅s, 1.17) + f(2.2, t, s−t)
Даны действительные числа s,*t.*Получить: f (t ,−2⋅s,1.17)+ f(2.2 ,t ,s−t) ,*где f (a ,b , c)=2⋅a−b−sin (c)\5+c

Вычислить значения y, соответствующие каждому значению x (xn≤x≤xk, dx) по формуле: y=e−xsin(x),∣x∣≤a e−x2cos(x
Вычислить значения y, соответствующие каждому значению x (xn≤x≤xk, dx) по формуле: y=e−xsin(x),∣x∣≤a ...

(x − a)(x − b)>=0
Помогите написать программу для решения неравенства (x − a)(x − b)>=0 на ЯП Pascal


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru