![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
lopata |
![]()
Сообщение
#1
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 99 Пол: Женский Реальное имя: vera Репутация: ![]() ![]() ![]() |
Количество свечей, которые можно поставить(повесить) на Рождественскую елку зависит от высоты(h) елки.
Изучите следующие примеры освещения свечами: ![]() 1 рис. h = 1. Candles = 1; 2 рис. h = 2. Candles = 4; 3 рис. h = 3. Candles = 13; a)Укажите(дайте) рекурсивное определение и рекурсивный алгоритм для Candles(h). b) Реализуйте итеративный ввод с действием для Candles(h). Честно говоря, вообще не понимаю как это делать.. Объясните, пожалуйта, если кто понял, что нужно вообще делать в этом задании. Не понимаю как это можно делать с помощью рекурсии..да и вообще не понимаю как это делать. |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Подозрительно похоже на Салфетку Серпинского. Посмотри в FAQ-е, klem4 по-моему, показывал, как такое делается...
|
lopata |
![]()
Сообщение
#3
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 99 Пол: Женский Реальное имя: vera Репутация: ![]() ![]() ![]() |
Спасибо, volvo. Просто не было понятно , что это вообще.
Попробую разобраться. |
lopata |
![]()
Сообщение
#4
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 99 Пол: Женский Реальное имя: vera Репутация: ![]() ![]() ![]() |
Как выяснилось (хотя возможно и неверно), что количество
Candles =(3 в степени (h-1)) + (3 в степени (h-2)) Вроде сходится.. а как применить на практике не знаю саму рекурсию не особо понимаю. Не мог бы кто-нибудь объяснить как это можно сделать. |
lopata |
![]()
Сообщение
#5
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 99 Пол: Женский Реальное имя: vera Репутация: ![]() ![]() ![]() |
всё...терь я совсем запуталась.
|
Tony |
![]()
Сообщение
#6
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ну если я правильно понимаю поставленную задачу, то при h = 4 ответ будет 40, и при этом соотношени Candles(h) = 3^(h-1) + 3^(h-2) неверно...
Но тогда верно другое соотношение, а именно : Candles(h) = 3 * Candles(h - 1) + 1; Candles(1) = 1. Программно это реализуется так : Код function Candles(h:longint):longint; begin if h = 1 then Candles := 1 else Candles := 3 * Candles(h - 1) + 1; end; При этом функция Candles вызывает сама себя до тех пор, пока h не станет равным 1. После этого рекурсия как бы возвращается назад, используя полученные значения... Вообще конечно это сложно объяснить ![]() |
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
Цитата Как выяснилось (хотя возможно и неверно), что количество Не сходится, потому что неверно. Верная формула: Candles(h) = (3h - 1) / 2Candles =(3 в степени (h-1)) + (3 в степени (h-2)) Вроде сходится.. |
lopata |
![]()
Сообщение
#8
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 99 Пол: Женский Реальное имя: vera Репутация: ![]() ![]() ![]() |
Спасибо,Tony . Но я все равно не могу понять как работают эти рекурсии.
![]() Добавлено через 2 мин. volvo , а как ты откопал эту формулу?. |
volvo |
![]()
Сообщение
#9
|
Гость ![]() |
Цитата а как ты откопал эту формулу? А чего ее откапывать? Я ее и не закапывал вообще-то. У меня память хорошая, если честно, я просто помню много разных формул... |
andriano |
![]()
Сообщение
#10
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: ![]() ![]() ![]() |
|
lopata |
![]()
Сообщение
#11
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 99 Пол: Женский Реальное имя: vera Репутация: ![]() ![]() ![]() |
Цитата а как ты откопал эту формулу?. Вообще-то формулы не откапываются, а выводятся. я это и имела в виду. |
lopata |
![]()
Сообщение
#12
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 99 Пол: Женский Реальное имя: vera Репутация: ![]() ![]() ![]() |
Спасибо
![]() Вот такая вот функция получилась с итерацией:
Сообщение отредактировано: lopata - 4.01.2010 4:10 |
Lapp |
![]()
Сообщение
#13
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Спасибо ![]() Вот такая вот функция получилась с итерацией: FUNCTION CandlesIter (h : Integer):integer; А где тут рекурсия? ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
lopata |
![]()
Сообщение
#14
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 99 Пол: Женский Реальное имя: vera Репутация: ![]() ![]() ![]() |
Как видишь, тут рекурсии нет.
Я говорю о той функции, которую написал Tony. |
![]() ![]() |
![]() |
Текстовая версия | 20.06.2025 19:45 |