阿克曼函数简介

阿克曼函数是一个经典的递归函数,常用于计算理论和递归算法的研究。其定义如下:

  1. A(m,n)=n+1A(m, n) = n+1, 如果 m=0m = 0
  2. A(m,n)=A(m−1,1)A(m, n) = A(m-1, 1), 如果 m>0m > 0n=0n = 0
  3. A(m,n)=A(m−1,A(m,n−1))A(m, n) = A(m-1, A(m, n-1)), 如果 m>0m > 0n>0n > 0

阿克曼函数的增长速度极快,即使对于很小的输入值,也可能导致深度递归。

 

; 阿克曼函数
; https://rosettacode.org/wiki/Ackermann_function#AutoHotkey

MsgBox, % "A(1,2) = " A(1,2)

A(m, n) {
  If (m > 0) && (n = 0)
    Return A(m-1,1)
  Else If (m > 0) && (n > 0)
    Return A(m-1,A(m, n-1))
  Else If (m=0)
    Return n+1
}

 

声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。