Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
SlavaCherep
0 / 0 / 0
Регистрация: 01.11.2016
Сообщений: 35
1

Найти значение функции Аккермана

07.03.2017, 09:35. Просмотров 367. Ответов 7
Метки нет (Все метки)

Найти значение функции Аккермана A(m, n), которая определяется для всех неотрицательных целых аргументов m и n следующим образом:
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.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.03.2017, 09:35
Ответы с готовыми решениями:

Найти рекурсивно значение функции Аккермана A(m, n)
Я новичек так что сильно не бейте :) Нужно рекурсивно найти функцию Аккермана....

Максимальное значение функции Аккермана
Код есть, вопрос в том до какого макс. числа комп может расчитать занчение?

Вывести таблицу функции Аккермана
Не знаю как исправить ошибку... и можно пояснить что за ошибка? #include...

Рекурсия: вычисление функции Аккермана
Обчислити рекурсивним методом значення математичної залежності, заданої...

Найти рекурсивную функцию Аккермана
Подскажите где ошибка. Здесь надо найти рекурсивную функцию Аккермана. Вроде...

7
FIZRYK0217
0 / 0 / 0
Регистрация: 28.02.2017
Сообщений: 9
07.03.2017, 09:41 2
Найти значение функции Аккермана A(m, n), которая определяется для всех неотрицательных целых аргументов m и n следующим образом:
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.
0
Байт
Эксперт C
18318 / 12029 / 2506
Регистрация: 24.12.2010
Сообщений: 24,293
07.03.2017, 10:14 3
https://ru.wikipedia.org/wiki/%D0%A4...B0%D0%BD%D0%B0
0
Notoriously
69 / 69 / 35
Регистрация: 06.07.2016
Сообщений: 414
07.03.2017, 20:37 4
SlavaCherep,
Плохое, рекурсивное решение.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
 
long double ackermann_function(size_t first_argument, size_t second_argument);
int main()
{
    std::cout << ackermann_function(3,0 );
}
 
 
long double ackermann_function(size_t first_argument, size_t second_argument)
{
    if (!first_argument && second_argument)
    {
        return second_argument + 1;
    }
 
    if (first_argument && !second_argument)
    {
        return ackermann_function(first_argument - 1, 1);
    }
 
    if (first_argument && second_argument)
    {
        return ackermann_function(first_argument - 1, ackermann_function(first_argument, second_argument - 1));
    }
}
0
Байт
Эксперт C
18318 / 12029 / 2506
Регистрация: 24.12.2010
Сообщений: 24,293
07.03.2017, 20:48 5
Цитата Сообщение от Notoriously Посмотреть сообщение
Плохое, рекурсивное решение.
Да уж! С Аккерманом шутки плохи. Он растет столь чудовищно быстро, что не хватит никаких double. Не говоря уже о том, что сравнение double с нулем - штука чрезвычайно подозрительная. Да и никакой длинной арифметики не хватит. Уже ackermann(5, 1) превосходит все, что только можно придумать....

Добавлено через 1 минуту
Т.е. формально ваше решение как бы правильно. Но его реализация на компьютере обречена на провал.
0
TheCalligrapher
07.03.2017, 21:31
  #6

Не по теме:

Цитата Сообщение от SlavaCherep Посмотреть сообщение
Найти значение функции Аккермана A(m, n)
Обычно эту задачу дают ничего не подозревающему студенту в качестве шутки... Это что-то вроде "послать за ведром клиренса".

0
Notoriously
69 / 69 / 35
Регистрация: 06.07.2016
Сообщений: 414
07.03.2017, 22:37 7
Цитата Сообщение от Байт Посмотреть сообщение
Но его реализация на компьютере обречена на провал
Поэтому и пишу,что плохое, потому что знаю это.
Тут разве что итеративное решение с использованием длинных чисел будет похоже на что-то работоспособное.
У меня стек переполняется уже на вызове ackermann_function(4,0), поэтому то что вверху и кодом то назвать нельзя.
0
mat_for_c
217 / 210 / 77
Регистрация: 26.04.2013
Сообщений: 963
Завершенные тесты: 3
08.03.2017, 10:33 8
Цитата Сообщение от Байт Посмотреть сообщение
Он растет столь чудовищно быстро, что не хватит никаких double
Когда я его тестил в свои студенческие годы, вылетала ошибка переполнения стэка...
0
08.03.2017, 10:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.03.2017, 10:33

Найти наименьшее положительное значение функции и соответствующее значение аргумента
как найти наименьшее положительное значение функции и соответствующий х? (т.е....

Найти наименьшее значение функции и значение аргумента, при котором оно получено
Для заданного набора коэффициентов a, b, c, d найдите наименьшее значение...

Для данного вещественного х найти значение следущей функции f, принимающей значение целого типа:
0, если х&lt;0, f(x) = 1, если принадлежит[0,1),[2,3),..., -1, если х...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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