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

Рекурсия: найти n-й член числовой последовательности, которая определяется рекуррентной формулой

13.03.2015, 21:34. Показов 1776. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Нужна помощь в решении задачи.

Найти n-й член числовой последовательности, которая определяется рекуррентной формулой a1 = 1, a2 = 2, a3 = 3, an+1 = 3an + 2an–1 + an–2.

Вот пример того, как я пытался ее решить:
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
predicates
   pos(integer, integer)
clauses
   pos(1,1):-!.
   pos(2,2):-!.
   pos(3,3):-!.
   pos(N,P):- 
    N1 = 3*(N-1), pos(N1,P1),
    N2 = 2*(N-2),pos(N2,P2),
    N3 = N-3,pos(N3,P3), 
    P = P1 + P2 + P3. 
goal
   write("N:"), readint(N),
   pos(N,P),  
   write(P).
Проблема заключается в том, что я не знаю как из индекса n вычитать число. К сожалению похожие темы на форуме не смогли мне помочь, совсем. Надеюсь что кто-то отзовется. Заранее спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.03.2015, 21:34
Ответы с готовыми решениями:

Найти n-й член числовой последовательности, которая определяется рекуррентной формулой
Найти n-й член числовой последовательности, которая определяется рекуррентной формулой: a1 = 1, a2 = 2, a3 = 3, an+1 = 3an + 2an–1 +...

Найти n-й член числовой последовательности, которая определяется рекуррентной формулой a1 = 1, a2 = 2, a3 = 3,
Найти n-й член числовой последовательности, которая определяется рекуррентной формулой a1 = 1, a2 = 2, a3 = 3, an+1 = 3an + 2an–1 + an–2....

Найти n-й член числовой последовательности, которая определяется рекуррентной формулой
Пожалуйста, помогите. Желательно решение по-простенькому.Описать методы для выполнения задания двумя способами: через цикл и используя...

2
Фрилансер
 Аватар для Black Fregat
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
14.03.2015, 01:44
Если править Вашу программу "в лоб", то умножать на коэффициенты нужно не индексы, а значения:
Prolog
1
2
3
4
5
   pos(N,P):- 
    N1 = N-1, pos(N1,P1),
    N2 = N-2, pos(N2,P2),
    N3 = N-3, pos(N3,P3), 
    P = 3*P1 + 2*P2 + P3.
Цитата Сообщение от zmzmzm Посмотреть сообщение
Проблема заключается в том, что я не знаю как из индекса n вычитать число.
Вот совершенно не понял, о чём это. Вы в строках 8-10 благополучно вычитаете из индекса число. В чём проблема?

Проблема в другом: глубина рекурсии при таком способе вычислений будет просто зашкаливать. Не так, как в функции Аккермана, конечно, но весьма ощутимо. Нужно делать как-то так:
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
predicates
   pos(integer, integer)
   pos_accum(integer, integer, integer, integer, integer, integer)
clauses
   pos(1 ,1) :- !.
   pos(2, 2) :- !.
   pos(3, 3) :- !.
   pos(N, P):- 
      pos_accum(N, 3, 3, 2, 1, P).
 
   pos_accum(N, N, P, _, _, P) :- !.
   pos_accum(N, K, P1, P2, P3, P) :-
      K1 = K+1,
      P0 = 3*P1 + 2*P2 +P3,
      pos_accum(N, K1, P0, P1, P2, P).
1
2 / 2 / 0
Регистрация: 24.10.2011
Сообщений: 14
14.03.2015, 09:48  [ТС]
Black Fregat, спасибо вам за помощь! Действительно, с индексами я что-то напутал, все вычитает. Ваш вариант выглядит лучше.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.03.2015, 09:48
Помогаю со студенческими работами здесь

Найти n-й член числовой последовательности, которая определяется рекуррентной формулой
помогите, пожалуйста Найти n-й член числовой последовательности, которая определяется рекуррентной формулой a1 = 1, a2 = 2, a3 = 3, an+1...

Рекурсия: найти n-ый член числовой последовательности по рекуррентной формуле
рекурсия.найти n-ый член числовой последовательности по рекуррентной формуле:

Вычислить n-ый член последовательности, заданной рекуррентной формулой (рекурсия/итерация)
нужно было написать прогу с рекурсией и без, считающую n-ый член последовательности , которая определяется рекуррентной формулой: a1=1,...

Рекурсия. Сформировать массив X(N), N-й член которого определяется формулой X(N) =1/n!
Сформировать массив X(N), N-й член которого определяется формулой X(N) =1/n! var n,i,j:byte; f:real; x:array of real; ...

Для числовой последовательности, общий член которой задается формулой
Здравствуйте. Решил первую часть задания, помогите со второй частью, пожалуйста.


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 19.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru