рекурсия, еще одна |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
рекурсия, еще одна |
lopata |
Сообщение
#1
|
Пионер Группа: Пользователи Сообщений: 99 Пол: Женский Реальное имя: vera Репутация: 0 |
Не только слово XTREE , все слова с нечетным количеством букв подходят для "ёлочной" рекурсии. Все буквы слова расположены в форме ёлки.
Для слова XTREE получается след. ёлка : Представьте себе, что вы уполномоченный по безопасности пожарной службы. Сколько возможных путей пожара до верхушки, если одна буква на самом нижнем уровне зажигается через одну свечку и огонь может распростроняться тольк вверх и вправо-вверх (в левой половине дерева) и соответсвенно влево-вверх (в правой половине дерева). Ответьте на вопрос рекурсивным математическим определением функции XFire и реализуйте в паскале. Помогите, пожалуйста, разобраться. Не понимаю вообще как решать задачу. В какую сторону идти? Сообщение отредактировано: lopata - |
andriano |
Сообщение
#2
|
Гуру Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
Для начала почитать что-нибудь про рекурсию.
Этого достаточно. |
lopata |
Сообщение
#3
|
Пионер Группа: Пользователи Сообщений: 99 Пол: Женский Реальное имя: vera Репутация: 0 |
Для начала я почитала. И тем не менне непонятно... Я понимаю, что это моя проблема в непонимании. Но прошу помочь как-нибудь..
|
andriano |
Сообщение
#4
|
Гуру Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
И чего ты хочешь?
Чтобы тебе пересказали то же самое, но своими словами? |
lopata |
Сообщение
#5
|
Пионер Группа: Пользователи Сообщений: 99 Пол: Женский Реальное имя: vera Репутация: 0 |
Я не знаю. Просто объяснить как рекурсия работает на этом примере.
|
volvo |
Сообщение
#6
|
Гость |
Цитата Просто объяснить как рекурсия работает на этом примере. Почему именно на этом? Тебе уже объясняли, как работает рекурсия, неоднкратно. Ты говоришь, что читала, но не поняла. Какой смысл здесь "растекаться мыслью по древу" (С)? Если ты не поняла там - какой шанс у тебя понять здесь?Ты разберись, как вообще работает рекурсия (на чем-то самом простом), а потом будешь пытаться применить ее в своей задаче. |
lopata |
Сообщение
#7
|
Пионер Группа: Пользователи Сообщений: 99 Пол: Женский Реальное имя: vera Репутация: 0 |
Что такое рекурсия теоретически я понимаю. Понимаю как работают примеры вычесления факториала, послед. Финабоччи и возведения в степень. Дальше дело не идет(
|
andriano |
Сообщение
#8
|
Гуру Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
|
lopata |
Сообщение
#9
|
Пионер Группа: Пользователи Сообщений: 99 Пол: Женский Реальное имя: vera Репутация: 0 |
по идее Wegs(Wort) := Wegs(wort)-3+Wegs(wort-2)
Wegs(3) = 3 *Wegs- кол-во путей *Wort - кол-во букв Сообщение отредактировано: lopata - |
TarasBer |
Сообщение
#10
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Непонятно.
Wegs(Wort) := Wegs(Wort)-3+Wegs(Wort-2) - это не рекурсивное математическое определение, так как справа тоже стоит Wers(Wort), который мы и пытаемся определить. -------------------- |
lopata |
Сообщение
#11
|
Пионер Группа: Пользователи Сообщений: 99 Пол: Женский Реальное имя: vera Репутация: 0 |
тогда я совсем не поняла(
Wegs := Wegs(Wort)-3+Wegs(Wort-2) |
andriano |
Сообщение
#12
|
Гуру Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
Хорошо, что значит?
i := i+1; |
lopata |
Сообщение
#13
|
Пионер Группа: Пользователи Сообщений: 99 Пол: Женский Реальное имя: vera Репутация: 0 |
значение увеличивается на единицу...
|
andriano |
Сообщение
#14
|
Гуру Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
Вот то же самое происходит и с функцией: она вызывает сама себя с ДРУГИМ(!) значением параметра и из полученных чисел формирует собственное возвращаемое значение.
Т.е. справа - результат вызова других экземпляров функции, а слева - значение, которое она вернет наружу. Кстати, обрати внимание, если при рекурсивном вызове значение параметра не изменяется, то рекурсия не когда не может закончиться. Т.е. ВСЕГДА нужно проверять, чтобы 1. Передаваемое п рекурсии значение не совпадало с входным 2. Существовало корректное условие завершения рекурсии. Сообщение отредактировано: andriano - |
lopata |
Сообщение
#15
|
Пионер Группа: Пользователи Сообщений: 99 Пол: Женский Реальное имя: vera Репутация: 0 |
Вроде.
Путь(n) = Путь(n-2) + 2 в / например Путь(5)= Путь(3)+ 2 в степени 2.. степень увеличивается на 1.. или вот еще один бред: Путь(7)= Путь(5) +(Путь(5) -Путь(3))*2 Сообщение отредактировано: lopata - |
TarasBer |
Сообщение
#16
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Уже ближе к истине, но всё равно - как в итоге выглядит общая формула
f(n) = ? -------------------- |
lopata |
Сообщение
#17
|
Пионер Группа: Пользователи Сообщений: 99 Пол: Женский Реальное имя: vera Репутация: 0 |
судя по тому, что было выше, то: *ну да
f (n):= f(n-2)+ (f(n-4)-f(n-2))*2 больше пока идей нету.. Сообщение отредактировано: lopata - |
TarasBer |
Сообщение
#18
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Что здесь такое f-2? Перечитай хотя бы то, что написала.
-------------------- |
lopata |
Сообщение
#19
|
Пионер Группа: Пользователи Сообщений: 99 Пол: Женский Реальное имя: vera Репутация: 0 |
я имела в виду:
f (n):= f(n-2)+ (f(n-2)-f(n-4))*2 но оно все равно неверно |
volvo |
Сообщение
#20
|
Гость |
Давай пойдем другим путем, ты перестанешь гадать, и начнешь рассуждать, договорились? Начнем с самого простого варианта твоего "дерева": допустим, что оно выглядит так:
1(разные значения узлов - просто чтоб проще ориентироваться). Представила себе это? Допустим (я говорю, допустим, пока), тебе уже известно, сколько путей пожара есть от вершины "2", от вершины "3" и от вершины "4". А теперь добавляем еще один уровень, внизу: 1Как теперь, зная, сколько путей есть из "2" и из "3", найти, сколько путей есть из "5" или из "6"? |
Текстовая версия | 23.12.2024 21:04 |