Gladir.com - LotusScript - Mathématique - Ackermann


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 LotusScript effectuant le calcul de la fonction d'«Ackermann» dans ses positions inférieures:
Function Ackermann(M As Integer,N As Integer) As Long
     If M = 0 Then
          Ackermann=N + 1
     Else
          If N = 0 Then 
               Ackermann=Ackermann(M-1,1)
          Else 
               Ackermann=Ackermann(M-1,(Ackermann(M,N-1)))
          End If
     End If
End Function

Sub Main()
     Dim  I As Integer
     Dim  J As Integer
     For I = 1 To 2
          For J = 1 To 10
               Print "Ackermann(" &Str$(I) &"," & Str$(J) &")=" &Str$(Ackermann(I, J))
          Next
     Next
End Sub

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: Vendredi, le 10 mars 2006