Section courante

A propos

Section administrative du site

La fabuleuse fonction d'«Ackermann» de 1926, laquelle, lorsqu'on met des chiffres de plus en plus gros dans le premier paramètre, augmente beaucoup plus vite que l'exponentiel ! Sa formule est cité dans presque tous les livres de récursivité, mais paradoxalement, son nom, Wilhelm Ackermann, est difficile à trouver ! Voici un code source Delphi effectuant le calcul de la fonction d'«Ackermann» dans ses positions inférieures :

  1. Program AckermannExample;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. Uses SysUtils;
  6.      
  7. Function Ackermann(M,N:Integer):Integer;Begin
  8.  If M = 0 Then Begin
  9.   Ackermann:=N + 1;
  10.  End
  11.   Else
  12.  Begin
  13.   If N = 0 Then Ackermann:=Ackermann(M-1,1)
  14.            Else Ackermann:=Ackermann(M-1,(Ackermann(M,N-1)));
  15.  End;
  16. End;
  17.      
  18. Var
  19.  I,J:Byte;
  20.      
  21. BEGIN
  22.  For I := 1 to 2 do Begin
  23.   For J := 1 to 10 do Begin
  24.    WriteLn('Ackermann(',I,',',J,')=',Ackermann(I, J));
  25.   End;
  26.  End;
  27. END.

on obtiendra le résultat suivant :

Ackermann( 1, 1)= 3
Ackermann( 1, 2)= 4
Ackermann( 1, 3)= 5
Ackermann( 1, 4)= 6
Ackermann( 1, 5)= 7
Ackermann( 1, 6)= 8
Ackermann( 1, 7)= 9
Ackermann( 1, 8)= 10
Ackermann( 1, 9)= 11
Ackermann( 1, 10)= 12
Ackermann( 2, 1)= 5
Ackermann( 2, 2)= 7
Ackermann( 2, 3)= 9
Ackermann( 2, 4)= 11
Ackermann( 2, 5)= 13
Ackermann( 2, 6)= 15
Ackermann( 2, 7)= 17
Ackermann( 2, 8)= 19
Ackermann( 2, 9)= 21
Ackermann( 2, 10)= 23

Voir également

Science - Mathématique

Dernière mise à jour : Dimanche, le 17 août 2014