16.10.2007, 16:43
|
#33 (Ссылка на пост)
|
Мечтатель
Пол:
Благодарил(а): 834
Благодарили 217 раз в 120 постах
Галерея:
0
Вес репутации: 22
|
Цитата:
Сообщение от Aurum
это комбинированный метод... сам придумал )
Код:
function aker(m,n: integer): integer;
begin
inc(count);
if mRes[m,n]=0 then
begin
if m=0 then mRes[m,n]:=n+1
else if n=0 then mRes[m,n]:=aker(m-1, 1)
else if (m*n0) then mRes[m,n]:= aker(m-1, aker(m,n-1));
end;
aker := mRes[m,n];
end;
суть такова: есть масив (mRes) все эл-ты равны 0, каждый раз когда вычисляется функция аккермана(м,н) , значение заносится в mRes[м,н], но при вычислении функции проверяется сначала ячейка массива если она 0 тогда функция вычисляется рекурсией если там уже есть значение то функция равна этому значению... нужен очень большой массив по н!
|
Однако молоток! Мне нравится
|
|
|