维基百科:阿克曼函数

阿克曼函数

阿克曼函数是非原始递归函数的例子;它需要两个自然数作为输入值,输出一个自然数。它的输出值增长速度非常高,仅是(4,3)的输出已大得不能准确计算。

1920年代后期,数学家大卫·希尔伯特的学生Gabriel Sudan和威廉·阿克曼,当时正研究计算的基础。Sudan发明了一个递归却非原始递归的Sudan函数。1928年,阿克曼又独立想出了另一个递归却非原始递归的函数。他最初的念头是一个三个变量的函数A(m,n,p),使用康威链式箭号表示法是m→n→p。阿克曼证明了它是递归函数。希尔伯特在On the Infinite猜想这个函数不是原始递归。阿克曼在On Hilbert’s Construction of the Real Numbers证明了这点。后来Rozsa Peter和Raphael Robinson定义了一个类似的函数,但只用两个变量。

定义:

           { n+1;               m=0,n>0   A(m,n) = { A(m-1,1);          n=0,m>0   { A(m-1,A(m,n-1))    n>0,m>0 

求下面程序的输出结果:

int ack(int m,int n)
{if(m==0){return n+1;}else if(n==0){return ack(m-1,1);}else{return ack(m-1,ack(m,n-1));}
}

Ackerman函数相关推荐

  1. Ackerman 函数-奇怪的函数

    Ackerman函数 Ackerman函数定义如下: A(1, 0) = 2 A(0, m) = 1                              m >= 0 A(n, 0) = ...

  2. Ackerman 函数的解法

    Ackerman 函数的解法 1.定义 ack(m,n) =  n+1                     m = 0 ack(m,n) = ack(m-1,1)            m!=0 ...

  3. Ackerman函数 非递归 java_Ackerman(nm)函数的非递归算法.doc

    Ackerman(nm)函数的非递归算法 题目:已知Ackerman函数的定义如下: A(1,0)=2n=1,m=0 Ackerman= A(0,m)=1 n=0,m>=0 A(n,0)=n+2 ...

  4. c语言编写计算ackerman函数的递归函数ack(n,x,y),第六章函数与宏定义实验报告二...

    C程序设计实验报告 实验项目: 6.4.2.2. 利用复化梯形公式计算定积分 6.4.2.3. 计算Ackerman函数 6.4.3.1. 编写计算x的y次幂的递归函数getpower(int x,i ...

  5. 汗,Ackerman函数......

    数据结构书的习题中看到的,Ackerman函数,它需要两个自然数作为输入值,输出一个自然数.它的输出值增长速度非常高,仅是对于(4,3)的输出已大得不能准确计算.而其反函数的增速奇慢. 环境:Vim ...

  6. 3. ackerman函数的递归实现算法用java语言_ackerman递归

    定义: n+1        n=0 A(m,n)={A(m-1,1) m=0 A(m-1,A(m,n-1)) n>0,m>0 #include #include using namesp ...

  7. Ackerman函数 非递归 java_Ackerman函数的非递归实现.

    在网上看到了一些人在找这个Ackerman函数 , 不知道这个函数的实际含义,首先看到了他的递归形式: 注释部分是分析后的结果. int rackerman(int m,int n) { if(m== ...

  8. 递归 Ackerman函数

    当一个函数以及它的一个变量由函数自身定义时,称这个函数为双递归函数---Ackerman函数. Ackerman函数A(n,m)有两个独立的变量m≥0和n≥0,其定义如下: A(1,0)=2 A(0, ...

  9. 3. ackerman函数的递归实现算法用java语言_ackerman函数递归算法

    5-2 已知 Ackerman 函 5-1 已知 A[n]为整数数组,试写出实现下列运算的递归算法: (1) 求数组 A 中的最大整数. (2) 求 n 个整数的和. (3) 求 n...... 2 ...

  10. Ackerman函数(C语言)

    Ackerman函数递归实现(C语言) 此函数在此不做详细介绍.下面直接上代码. 输入样例: 4 3 输出样例: 65536 源代码 #include<stdio.h> int Acker ...

最新文章

  1. [sharepoint]根据用户名获取该用户的权限
  2. 超级详细AST抽象语法树Javascript
  3. 计算机体系结构----常见英文缩写(待更....)
  4. [蓝桥杯] 蚂蚁感冒
  5. C++11新特性之泛型编程与模板
  6. 安兔兔2019年1月安卓手机排行榜发布:小米无愧性价比之王
  7. Python中的偏函数和函数柯里化
  8. Golang的简明安装指南
  9. 配置ArcGIS Server使用Windows AD Windows集成身份认证
  10. yagmail发送邮件
  11. 强制选择“你是不是喜欢我” python实现
  12. 软件功能测试点---总结大全
  13. 临床医师看过来:5个理由告诉你,为什么JMP软件更适合你?
  14. 自动伽马校正(Auto Gamma Correction)算法
  15. java-日期操作总结
  16. 通信恩仇,5G江湖(转)
  17. 一包辣条如何逆袭,从屌丝品牌成为有逼格的产品?
  18. 为什么使用非线性激活函数?常见的非线性激活函数及优缺点对比
  19. 一文带你了解 Flink Forward 柏林站全部重点内容
  20. 学习MonoRail MVC

热门文章

  1. C# 名称空间的别名
  2. ACPC2015 K 树的直径
  3. 弱加密算法有哪几种_常见的几种加密方法
  4. WPS之Excel表格如何设置下拉选项
  5. 华为wifi信号如何连接到服务器,如何解决华为路由器搜到信号却无法连接
  6. 开源LLM领域变天!LLaMa惊天泄露引爆ChatGPT平替狂潮
  7. CSS3 实现可爱的动物动态的哈士奇动画
  8. PS(简单操作) 单张图片制作九宫格/证件照排版
  9. 未能解析主引用“Fiddler”,因为它是针对“.NETFramework,Version=v4.6.1”框架生成的。该框架版本高于当前目标框架“.NETFramework,Version=v4.5
  10. 微信之旅——微信公众号