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 GFA-Basic effectuant le calcul de la fonction d'«Ackermann» dans ses positions inférieures:
Dim I, J
For I = 1 To 2
For J = 1 To 10
Print "Ackermann(" + Str$(I) + "," + Str$(J) + ")=" + Str$(@Ackermann(I, J))
Next
Next
Function Ackermann(M, N)
If M = 0 Then
Return N + 1
Else
If N = 0 Then
Return Ackermann(M - 1, 1)
Else
Return Ackermann(M - 1, (Ackermann(M, N - 1)))
EndIf
EndIf
EndFunc
on obtiendra le résultat suivant:
Ackermann( 1, 1)= 3Ackermann( 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
Dernière mise à jour : Samedi, le 5 août 2017