Показать сообщение отдельно
Старый 16.10.2007, 16:43   #33 (Ссылка на пост)
Dreamer
Мечтатель
Пол:
 
Активность Longevity
0/20 19/20
Today Сообщения
0/5 sssss1291
Благодарил(а): 834
Благодарили 217 раз в 120 постах
Галерея: 0
Вес репутации: 22 Dreamer имеет великолепную ауруDreamer имеет великолепную ауру
Отправить сообщение для  Dreamer с помощью ICQ
Цитата:
Сообщение от 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 тогда функция вычисляется рекурсией если там уже есть значение то функция равна этому значению... нужен очень большой массив по н!
Однако молоток! Мне нравится
Dreamer вне форума  
Ответить с цитированием