IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> рекурсия
lopata
сообщение 3.01.2010 19:09
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 99
Пол: Женский
Реальное имя: vera

Репутация: -  0  +


Количество свечей, которые можно поставить(повесить) на Рождественскую елку зависит от высоты(h) елки.
Изучите следующие примеры освещения свечами:
Изображение

1 рис. h = 1. Candles = 1;
2 рис. h = 2. Candles = 4;
3 рис. h = 3. Candles = 13;
a)Укажите(дайте) рекурсивное определение и рекурсивный алгоритм для Candles(h).
b) Реализуйте итеративный ввод с действием для Candles(h).

Честно говоря, вообще не понимаю как это делать..
Объясните, пожалуйта, если кто понял, что нужно вообще делать в этом задании.
Не понимаю как это можно делать с помощью рекурсии..да и вообще не понимаю как это делать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Tony
сообщение 3.01.2010 22:52
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 17
Пол: Мужской

Репутация: -  1  +


Ну если я правильно понимаю поставленную задачу, то при 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. После этого рекурсия как бы возвращается назад, используя полученные значения... Вообще конечно это сложно объяснить smile.gif .
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
lopata   рекурсия   3.01.2010 19:09
volvo   Подозрительно похоже на Салфетку Серпинского. Посм...   3.01.2010 19:17
lopata   Спасибо, volvo. Просто не было понятно , что это ...   3.01.2010 19:32
lopata   Как выяснилось (хотя возможно и неверно), что коли...   3.01.2010 22:22
lopata   всё...терь я совсем запуталась.   3.01.2010 22:44
Tony   Ну если я правильно понимаю поставленную задачу, т...   3.01.2010 22:52
volvo   Не сходится, потому что неверно. Верная формула: C...   3.01.2010 23:10
lopata   Спасибо,Tony . Но я все равно не могу понять как ...   3.01.2010 23:11
andriano   а как ты откопал эту формулу?. Вообще-то формулы ...   3.01.2010 23:17
volvo   А чего ее откапывать? Я ее и не закапывал вообще-т...   3.01.2010 23:17
lopata   я это и имела в виду.   3.01.2010 23:19
lopata   Спасибо :) . Теперь, кажется, начинаю понимать как...   4.01.2010 4:05
Lapp   Спасибо :) . Теперь, кажется, начинаю понимать как...   4.01.2010 4:11
lopata   Как видишь, тут рекурсии нет. Я говорю о той функц...   4.01.2010 4:17


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.06.2025 12:29
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"