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 QuickBASIC effectuant le calcul de la fonction d'«Ackermann» dans ses positions inférieures :

  1. DECLARE FUNCTION Ackermann! (M!, N!)
  2. FOR I = 1 TO 2
  3.  FOR J = 1 TO 10
  4.   PRINT "Ackermann(" + STR$(I) + "," + STR$(J) + ")="; Ackermann(I, J)
  5.  NEXT
  6. NEXT
  7.  
  8. FUNCTION Ackermann (M, N)
  9.  IF M = 0 THEN
  10.   Ackermann = N + 1
  11.  ELSE
  12.   IF N = 0 THEN
  13.    Ackermann = Ackermann(M - 1, 1)
  14.   ELSE
  15.    Ackermann = Ackermann(M - 1, (Ackermann(M, N - 1)))
  16.   END IF
  17.  END IF
  18. END FUNCTION

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 : Mercredi, le 14 septembre 2016