![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
BSS |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Мужской Реальное имя: Серёга Репутация: ![]() ![]() ![]() |
Очень нужна рекурсивная реализация для вычисления n-го элемента последовательности чисел Фибоначчи с использованием вспомогательного массива для хранения вычисленных значений
Помогите пожалуйста решить. |
![]() ![]() |
BSS |
![]()
Сообщение
#2
|
|||
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Мужской Реальное имя: Серёга Репутация: ![]() ![]() ![]() |
Вычислить n-й член последовательности Фибоначчи обычным способом и ускоренным (порядка С logn)
--------------- program fibona4i; ----------------------------------- уберите плз лишнее, оставив только рекурсивное решение
Сообщение отредактировано: Lapp - 26.03.2010 6:26 |
|||
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
Цитата удалите лишнее Тут не удалять, а добавлять надо...Знаешь, как называется вот этот метод - рекурсия Цитата с использованием вспомогательного массива для хранения вычисленных значений ? Мемоизация (Memoization)... Выглядит как-то вот так:const |
BSS |
![]()
Сообщение
#4
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Мужской Реальное имя: Серёга Репутация: ![]() ![]() ![]() |
Тупо выводит результат 89...Но спасибо за мемоизацию
Сообщение отредактировано: BSS - 26.03.2010 3:20 |
Lapp |
![]()
Сообщение
#5
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Тупо выводит результат 89...Но спасибо за мемоизацию Гм. Почему это - тупо?? ![]() И почему "но"?.. Ты вообще о чем?.. Тебе дали в лучшем виде то, что ты просил - а у тебя какие-то придирки?.. Будь так добр, объясни. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
BSS |
![]()
Сообщение
#6
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Мужской Реальное имя: Серёга Репутация: ![]() ![]() ![]() |
Ну программа не работает в смысле.(тупо выводит-это о программе).Извините, пожалуйста, если что не так сказал
|
Lapp |
![]()
Сообщение
#7
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Ну программа не работает в смысле.(тупо выводит-это о программе).Извините, пожалуйста, если что не так сказал Постой, постой. Как это не работатет?..Ты просил рекурсивную функцию для подсчета чисел Фибоначчи? Тебе и дали эту функцию. То, что она выводит 11-й элемент последовательности правильно (89) - разве это не подтверждение того, что она работает??.. Почитай Крылова. "Мартышка и очки" называется. Это про тебя. Просишь что-то, а как применить - без понятия.. PS разобраться он хочет.. ага, держи карман шире. Даже посмотреть, что именно выводится - мы уже не в состоянии.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
BSS |
![]()
Сообщение
#8
|
Новичок ![]() Группа: Пользователи Сообщений: 12 Пол: Мужской Реальное имя: Серёга Репутация: ![]() ![]() ![]() |
Постой, постой. Как это не работатет?.. Ты просил рекурсивную функцию для подсчета чисел Фибоначчи? Тебе и дали эту функцию. То, что она выводит 11-й элемент последовательности правильно (89) - разве это не подтверждение того, что она работает??.. Почитай Крылова. "Мартышка и очки" называется. Это про тебя. Просишь что-то, а как применить - без понятия.. PS разобраться он хочет.. ага, держи карман шире. Даже посмотреть, что именно выводится - мы уже не в состоянии.. ******************************** Спасибо Вам, Владимир и Андрей. Я виноват, что не заметил, что там выводится значение функции от 11... fib(11). Ночью дело было... ************* ************* Программа значит: const Добавлено через 8 мин. А что означает строка: if Results[n] = -1 ? Сообщение отредактировано: Lapp - 26.03.2010 23:19 |
Lapp |
![]()
Сообщение
#9
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
А что означает строка: if Results[n] = -1 ? Это значит, что нужный член последовательности еще не посчитан. Перед работой программа инициализирует массив значением -1. Это значение не встречается в последовательности, поэтому оно используется для индикации того, что этот член еще не считался, и программа начинает его вычислять. В противном случае она выдает то значение, которое сохранено в массиве. Пожалуйста, при публикации программного кода используй тэги кода (Правила Форума, п.5 и правила раздела Задачи, п.2) -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 10:50 |