Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2014, 17:52   #1
DimasikP
 
Регистрация: 07.11.2014
Сообщений: 7
По умолчанию Вопрос по задачам (Рекурсия)

Вообщем, я пока слабый программист, 1 курс. Нужна помощь в 2 задачах.

3. Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(1) = 1, F(2) = 1
F(n) = F(n-2)*(n-1) + 2, при n > 2
Написать рекурсивную функцию для вычисления F(8).


4. Алгоритм вычисления значения функции F(w), где w - натуральное число, задан следующими соотношениями:
F(1) = 3; F(2) = 3;
F(w) = 5*F(w-l)- 4*F(w-2) при w > 2.
Написать рекурсивную функцию для вычисления F(15).
DimasikP вне форума Ответить с цитированием
Старый 07.11.2014, 18:26   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну что ж. Задача есть. Теперь покажи наработки и попытки )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.11.2014, 09:38   #3
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Код:
f(1, 1):-!.
f(2, 1):-!.
f(N, F):-
  N > 2, !.
  N2 is N - 2, N1 is N - 1,
  f(N2, F2), f(N1, F1),
  F is F2 * F1 + 2.
Код:
f(1, 3):-!.
f(2, 3):-!.
f(W, F):-
  W > 2, !,
  W1 is W - 1, W2 is W - 2,
  f(W1, F1), f(W2, F2),
  F is 5*F1 - 4*F2.
На SWI/GNU Prolog
rrrFer вне форума Ответить с цитированием
Старый 08.11.2014, 10:50   #4
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,680
По умолчанию

rrrFer первокурсник Prolog не увидит курса до 4 наверно... Скорее уместен вопрос, а на каком языке нужен код?
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!
Bugrimov вне форума Ответить с цитированием
Старый 08.11.2014, 11:12   #5
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Bugrimov
Цитата:
rrrFer первокурсник Prolog не увидит курса до 4 наверно.
Ну окей, вот на Пифагоре (https://ru.wikipedia.org/wiki/%D0%9F...D0%BE%D0%B2%D0
Код:
%B0%D0%BD%D0%B8%D1%8F%29)

F << funcdef X {
  ((X, 1) : [<, =, >]):? ^ (
		"error", 1,
		{
			((X, 2) : [=, >]):? ^ (
				1, 
				{
					(((X, 2):-:F, (X, 1):-:F):*, 2):+
				}
			):.
		}
	):.>> return;
}
Накидал схематично, не проверял. Явно решение кривое - в языке есть всякие параллеьные и асинхронные штуки - мне кажется что правильное решение на этом языке должно выглядеть так, что создается матрица из X и списка (1, 2), матрица транспонируется, к строкам применяется оператор сравнение и результат эротично передается для выбора нужного задержанного списка.
Первая часть выполняется параллельно, а сам код запихнут в задержанный список, поэтому выполняется лениво. Ну или типа того.
rrrFer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рекурсия (вопрос к программистам с опытом) marenko.lilia Общие вопросы C/C++ 14 22.10.2014 23:22
Комментарии к задачам. Richik123 Помощь студентам 0 22.11.2012 19:24
Вопрос к задачам AndyMark Microsoft Office Word 0 17.12.2010 19:36
Вопрос по транспортным задачам [Smarik] Свободное общение 0 25.03.2009 18:14