поиск чисел фибоначи рекурсией, я нечего непонел и незнаю с чего начать помогите |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
поиск чисел фибоначи рекурсией, я нечего непонел и незнаю с чего начать помогите |
maksimla |
Сообщение
#1
|
Знаток Группа: Пользователи Сообщений: 324 Пол: Мужской Реальное имя: maksim Репутация: 1 |
Фибоначчо числа можно общетать рекурсией. Рекурсивные запросы можно увидить как на двоичном дереве
Можно увидить что некоторые Фибоначчо числа находят несколько раз, что это неэфективно. Напишите функцию на которой каждое фибоначчи число было рекурсивно общитано только один раз о его значение будущим высчитываниям было держано в массиве. непонел что надо зделать и какие значения будут в функцию поступать -------------------- Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
|
volvo |
Сообщение
#2
|
Гость |
Недостаток - это то, что надо явно инициализировать все значения. Ну ладно тут, от 0 до 23-х, всего 24 элемента. А если поменять тип на LongInt, тогда уже 46 чисел будут помещаться в этот тип, и придется написать в 2 раза больше (-1)-ниц... Но с другой стороны - есть неоспоримое преимущество: все, что уже было вычислено, второй раз вычисляться ВООБЩЕ не будет - сразу будет подставлено уже готовое значение. Особенно это эффективно, если функция вызывается не один раз, а несколько. Смотри, что будет:
function fib(n: integer): integer;fib(20) вычисляется обычно... А вот потом, когда вызывается еще fib(12) - никаких вычислений нет вообще, просто сразу возвращается значение из массива, и все... Запусти и посмотри, что будет... |
Текстовая версия | 19.05.2024 22:12 |