Cviceni Navrh Algoritmu I

Ackermannova funkce

      Ackermannova funkce je definovana nasledovne:

Ack(0,n) = n+1   pro n>=0
Ack(m,0) = Ack(m-1,1) pro m>=1
Ack(m,n) = Ack(m-1,Ack(m,n-1)) pro m,n>0

      Pokud se vypocet naprogramuje rekurzivne primo podle definice, je velmi zdlouhavy, stejne jako u Fibonacciho rady. Daleko lepsi je vyuziti tabulky, ve ktere si pamatujeme jiz vypoctene hodnoty funkce a vicekrat je jiz nepocitame, nybrz bereme hodnoty z tabulky. Pro mala m lze take pouzit nasledujicich vzorcu:

Ack(0,n) = n+1
Ack(1,n) = n+2
Ack(2,n) = 2*n+3
Ack(3,n) = 2^(n+3)-3
Ack(4,n) = 2^(Ack(4,n-1)+3)-3
Vyzkousejte si vyuziti tabulky a uvedenych vzorcu!