Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.93
antonkw_sky
0 / 0 / 0
Регистрация: 20.01.2013
Сообщений: 3
#1

Функция Аккермана без рекурсии - C++

20.01.2013, 19:46. Просмотров 2153. Ответов 2
Метки нет (Все метки)

Задача:
A(0, n) = n + 1;
A(m, 0) = A(m–1, 1); при m > 0;
A(m, n) = A(m–1, A(m, n–1)); при m > 0 и n > 0.

С рекурсией она решается так (размер стека пришлось увеличить, дабы хотя бы (4;1), (5;0) считало):
C++
1
2
3
4
5
int AkkR(int m, int n)  {
  if(m==0 && n>0) return n+1;
  if(n==0 && m>0) return AkkR(m-1, 1);
  else return AkkR(m-1,AkkR(m, n-1));
}
Но вот надо еще как-то реализовать решение сей функции без рекурсии, 2-е сутки мозг плавится от циклов внутри циклов, но так ничего путевого в голову и не пришло. Буду благодарен любой подсказке.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2013, 19:46     Функция Аккермана без рекурсии
Посмотрите здесь:

Функция Аккермана без рекурсии - C++
Возможно сделать функцию Аккермана НЕ рекурсивно, а циклически? Сложность с которой я столкнулся в том что невозможно написать цикл A(0,...

Функция Аккермана - C++
Разработать рекурсивную функцию нахождения значения функции Аккермана, которая определяется для всех неотрицательных целых аргументов m и n...

Рекурсивная функция Аккермана - C++
Добрый вечер. Столкнулся с такой вот проблеммой. Условие задачи : Написать рекурсивную функцию для вычисления значения так...

Рекурсия. Функция Аккермана. - C++
вычислить рекурсивным методом значения математической зависимости, заданной рекурентной формулой, для произвольного значения параметров ...

Функция Аккермана и рекурсия - C++
Доброго времени суток. Даны неотрицательные целые числа n, m; вычислить A(n, m), где A(n, m)=фиг. скобка m+1, if n=0, ...

Рекурсия без рекурсии - C++
Как известно с рекурсией связана маленькая скорость и проблема переполнения стека. Ее можно сымитировать с помощью обычного стека. ...

О 8 ферзях(Без рекурсии) - C++
Пытаюсь сделать задачу о 8 ферзях без рекурсии. Сделал набросок, но работает как то криво. В чем проблема? #include <stdlib.h> ...

Написать функцию без рекурсии - C++
bool st(int a) { if(a==1) return true; else return ((a%5==0) ? st(a/5) : false); }

Сортировка слияниеим без рекурсии - C++
Нужна сортировка слиянием без использования рекурсии. Помогите ...

Функция с возведением в степень с исользованием рекурсии - C++
Напишите функцию быстрого возведения в степень, которая пользовалась бы следующими свойствами: a^n=(a^n/2)2 при четном n, a^n=a*a^n-1 при...

Разложение на простые множители без рекурсии - C++
Задача такая : Надо написать две функции get_all_divisorts и get_lowest_divisor. Функция main должна вызывать get_all_divisorts ,...

Обход бинарного дерева без рекурсии - C++
нужно написать алгоритм обхода бинарного дерева без использования рекурсии, а с помощью стека. Проверить на дереве int, но в самом коде...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nonedark2008
889 / 628 / 126
Регистрация: 28.07.2012
Сообщений: 1,697
20.01.2013, 20:22     Функция Аккермана без рекурсии #2
Ну рекурсивные задачи обычно переделываются в нерекурсивные при помощи стека, с помощью которого какбы эмулируется рекурсия. Например, решение есть сдесь. Правда не проверял решение, но...

Добавлено через 1 минуту
Правда на яве, но переделать ведь не сложно?
antonkw_sky
0 / 0 / 0
Регистрация: 20.01.2013
Сообщений: 3
20.01.2013, 20:28  [ТС]     Функция Аккермана без рекурсии #3
nonedark2008, спасибо, будем курить
Вроде бы то, что нужно: все никак не заведу привычки гуглить на английском.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru