Сложность времени функции эккермана

80
7

Кто-нибудь знает временную сложность для вычисления функции ackermann ack (m, n) в нотации Big-O или к какому классу сложности он принадлежит?
Просто Ack (3, n) также будет достаточным.
Я читал где-то, это НЕ ДОЛЖНО?


Спасибо.


Фрагмент кода:


public class Ackermann {

public static int ackermann(int n, int m) {

if (n == 0)
return m + 1;
else if (m == 0)
return ackermann(n - 1, 1);
else
return ackermann(n - 1, ackermann(n, m - 1));
}

}

спросил(а) 2013-06-28T17:47:00+04:00 6 лет, 9 месяцев назад
1
Решение
64

Асимптотические пределы времени вычисления наихудшего случая, выраженные как функция длины ввода или временной сложности: не могут быть определены для mu-рекурсивных функций, а не atlest без ссылки на другую mu-рекурсивную функцию, сильно отличную от типичной большой нотации. И это только для тех mu рекурсивных функций, которые являются "тотальными", как наш субъект.

ответил(а) 2015-11-01T20:18:00+03:00 4 года, 5 месяцев назад
51

Если все, что вас интересует, это Ack (3, n), это O (возведение в степень).
Ack (3, n) = 2 n + 3 -3. Это можно вычислить с помощью операций O (logn).

ответил(а) 2013-06-29T09:24:00+04:00 6 лет, 9 месяцев назад
50

Я не слишком много знаю об этой функции, но, быстро глядя на нее, она кажется псевдополиномиальной. То есть время выполнения зависит от его ввода и может быть полиномиальным временем на определенных входах, а не многочленом для других. Это можно было бы доказать, используя диагонализацию Кантора

ответил(а) 2013-06-28T17:53:00+04:00 6 лет, 9 месяцев назад
37

В основном это третий случай, который включает в себя огромную сложность... и он находится в форме (((2 ^ 2) ^ 2) ^ 2) ^ 2 и т.д.... поэтому, что сложность 2 ^ (2 ^ n)... эта сложность намного хуже, чем n ^ n, поэтому я читаю где-то еще, что функция ackermann как верхняя граница для примитивно-рекурсивных функций, но я не совсем уверен в этом... нужно больше исследований...

ответил(а) 2016-11-18T16:55:00+03:00 3 года, 4 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема