Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Рекурсивный алгоритм 
:(
    Опции темы
Shurman38
Дата 6.7.2007, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 6.7.2007

Репутация: нет
Всего: нет



        n + 4,           if 1<=n<=10        
f(n){
        g(n-1)-n,      then
    

           2n,             if 1<=n<=10
g(n)={ 
           f(n-1)-1,     then


n=13

И ещё нужно отобразить содержимое stack при каждом вызове.


Как её решать?
PM MAIL   Вверх
Shurman38
Дата 7.7.2007, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 6.7.2007

Репутация: нет
Всего: нет



Да, по ходу я не там, где надо тему запостил. Извиняюсь.
По идее мне нужна суть решения, в смысле язык програмирования не важен.
В следующий раз буду внимательней.
PM MAIL   Вверх
LSD
Дата 7.7.2007, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: нет
Всего: 538



Модератор: флейм - удалил. Тема перемещена из Java: Общие вопросы


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
SoWa
Дата 7.7.2007, 23:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Ну будет у тебя три разных итерации для 13 12 11, и 10 одинаковых, если у тебя n будет уменьшаться в ходе работы. Если я конечно правильно понял: если n в отрезке 0;10 то n +4. Если нет- то переходим к g. Так?


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
maxim1000
Дата 7.7.2007, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



так а что, собственно, нужно сделать?
алгоритм вычисления функций тут уже написан
что касается стека, то тут уже зависит от того, на чём всё это будет реализовано
(даже на одном и том же языке для разных компиляторов, по идее, может получиться немного разное содержимое стека)


--------------------
qqq
PM WWW   Вверх
Shurman38
Дата 8.7.2007, 01:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 6.7.2007

Репутация: нет
Всего: нет



Чему равна f и ход решения. Я вообще не пойму, как эту рекурсию решать.
А содержание стэка не для какого-нить  языка конкретно, а просто обобщенно.
PM MAIL   Вверх
SoWa
Дата 8.7.2007, 05:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Хехе, долго не понимаешь. 
Бери f и подставляй туда 13. Получишь переход к g уже в точке 12. Из g вернешься в f с точкой 11, с ней обратно в g и потом останутся на каждом шаге зависимости 2n. Берешь бумажку и считаешь.  smile 

Это сообщение отредактировал(а) SoWa - 8.7.2007, 05:55


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Shurman38
Дата 8.7.2007, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 6.7.2007

Репутация: нет
Всего: нет



Какие зависимости 2n? Можете подумать, что я тупой, но я ничего не могу понять.

Добавлено через 12 минут и 41 секунду
        n + 4,           if 1<=n<=10        
f(n){
        g(n-1)+n,      then
                  --

           2n,             if 1<=n<=10
g(n)={ 
           f(n-1)-1,     then


Найти f(13)

Неправильно условие написал.
PM MAIL   Вверх
Shurman38
Дата 8.7.2007, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 6.7.2007

Репутация: нет
Всего: нет



f(13)=g(12)+13
        =f(11)-12+13
        =g(10)+11-12+13
        =f(9)-10+11-12+13
        =g(8)+9-10+11-12+13
        =f(7)-8+9-10+11-12+13
        =g(6)+7-8+9-10+11-12+13
        =f(5)-6+7-8+9-10+11-12+13
Дальше f(5) лежит в отрезке между 1 и 10, следовательно f(5) равна 5+4.
И того:5+4-6+7-8+9-10+11-12+13=19

А где 2n должна сработать? Или я неправильно посчитал?
PM MAIL   Вверх
maxim1000
Дата 8.7.2007, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



Цитата(Shurman38 @  8.7.2007,  14:46 Найти цитируемый пост)
g(10)+11-12+13

уже тут нужно было использовать g(n)=2n, ведь 1<=n<=10


--------------------
qqq
PM WWW   Вверх
Shurman38
Дата 8.7.2007, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 6.7.2007

Репутация: нет
Всего: нет



Это почему? 2n=2*10=20, а это уже не в отрезке 1<=n<=10.

PM MAIL   Вверх
maxim1000
Дата 9.7.2007, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



так не 2n ведь надо проверять на вхождение в отрезок, а n


--------------------
qqq
PM WWW   Вверх
Shurman38
Дата 9.7.2007, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 6.7.2007

Репутация: нет
Всего: нет



f(13)=g(12)+13
        =f(11)-12+13
        =g(10)+11-12+13
Дальше g(10) лежит в отрезке между 1 и 10, следовательно g(10) равна 2n=10*2=20.
Следовательно 20+11-12+13=32
А где должна n+4 сработать?
PM MAIL   Вверх
Artemios
Дата 9.7.2007, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 405
Регистрация: 14.8.2006
Где: Саратов, Россия

Репутация: 1
Всего: 50



Цитата(Shurman38 @  9.7.2007,  14:29 Найти цитируемый пост)
А где должна n+4 сработать? 

n+4 сработает, если будешь считать например f(12)


--------------------
fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ]
PM MAIL   Вверх
SoWa
Дата 9.7.2007, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Ты проверяешь первое условие, делаешь, а потом еще и второе. Зачем?


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.1157 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.