Функція Акермана

Матеріал з testwiki
Перейти до навігації Перейти до пошуку

Шаблон:UniboxФункція Акермана — у теорії складності обчислень є найпростішим прикладом обчислюваної функції, що не є примітивно-рекурсивною. Функція Акермана визначається рекурсивно для невід'ємних цілих чисел  m та  n таким чином:

A(m,n)={n+1,m=0;A(m1,1),m>0,n=0;A(m1,A(m,n1)),m>0,n>0.

Рекурсія завжди закінчується, оскільки або зменшується значення  m, або значення  m зберігається, а зменшується значення  n. Тобто пара  (m,n) завжди зменшується з точки зору лексикографічного порядку.

Функція зростає дуже швидко (значно швидше за експоненту). Наприклад, A(4,4)=222655363, що перевищує кількість атомів у видимому Всесвіті.

Історія

Початковий варіант такої функції (у дещо різній формі) запропонували учні Девіда Гільберта — Габрієль Судан (Шаблон:Lang-de) (1927 року) і Шаблон:Нп (1928). Гільберт висловив гіпотезу, що функція не є примітивно-рекурсивною, і Вільгельм Акерман (що став секретарем Гільберта) цю гіпотезу довів. Оригінальна функція Аккермана мала три аргументи[1]. Варіант із двома аргументами запропонували Роза Петер і Рафаєль Робінсон[2] і саме його зазвичай мають на увазі під назвою функція Акермана.

Таблиця

Значення A(m, n)
m\n 0 1 2 3 4 n
0 1 2 3 4 5 n+1
1 2 3 4 5 6 n+2=2+(n+3)3
2 3 5 7 9 11 2n+3=2(n+3)3
3 5 13 29 61 125 2(n+3)3
4 13 65533 265536 − 3 22655363 222655363 2223n + 3

Нотація

Джерела

Шаблон:Reflist

Посилання

Шаблон:Великі числа Шаблон:Гіпероперації

  1. Помилка цитування: Неправильний виклик тегу <ref>: для виносок під назвою 0315-0860(79)90024-7 не вказано текст
  2. Шаблон:Стаття