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

  1. Function Ackermann(M As Integer,N As Integer) As Long
  2.      If M = 0 Then
  3.           Ackermann=N + 1
  4.      Else
  5.           If N = 0 Then 
  6.                Ackermann=Ackermann(M-1,1)
  7.           Else 
  8.                Ackermann=Ackermann(M-1,(Ackermann(M,N-1)))
  9.           End If
  10.      End If
  11. End Function
  12.  
  13. Sub Main()
  14.      Dim  I As Integer
  15.      Dim  J As Integer
  16.      For I = 1 To 2
  17.           For J = 1 To 10
  18.                Print "Ackermann(" & Str$(I) & "," &  Str$(J) & ")=" & Str$(Ackermann(I, J))
  19.           Next
  20.      Next
  21. 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 : Dimanche, le 18 janvier 2015