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

环境:Vim + GCC ,Win7 32.

#include <stdio.h>/* * * * * * * * * * * * * * * * * * * * Ackerman函数的递归实现。这个函数的* 特性是:即使很小的 m 和 n , 他的增长* 也很迅速,因此得到广泛研究。* * * * * * * * * * * * * * * * * * */
int Ackerman(int m, int n)
{/*if (m < 0 || (m != 0 && n < 0) ){puts("ERROR.");exit(-1);}*/if (0 == m){return (n + 1);}if (m > 0 && 0 == n){return Ackerman(m - 1, 1);}return Ackerman(m - 1, Ackerman(m, n -1) );
}int main(void)
{int m = 0, n = 0;int result;puts("    Ackerman Function");printf("Input the m:");scanf("%d", &m);printf("Input the n:");scanf("%d", &n);result = Ackerman(m, n);printf("m = %d, n = %d, result = %d.\n", m, n, result);getch();return 0;
}

实际上当m = 4,n = 1 时,就栈溢出而被系统终止了,没法正常运行,或许用迭代的方法好一些。手工计算没一会儿我就投降了,我真心佩服想出这么个函数的人啊!

程序开始,192 K

一直在增长,直到2200 K左右 结程序束

汗,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. 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 ...

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

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

  7. 递归 Ackerman函数

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

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

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

  9. Ackerman函数(C语言)

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

最新文章

  1. Jenkins实现SVN+Maven+Java项目的持续集成
  2. python飞机大战源代码-python版飞机大战代码分享
  3. Spring框架分为哪七大模块以及各模块的主要功能作用
  4. python内置函数源代码_4.内置函数源码总结
  5. OpenGL Compute Shader计算着色器的实例
  6. gVim 中文内容显示为乱码的解决办法
  7. 代码环复杂度的计算公式
  8. JDBC实例--JDBC连接池技术解密,连接池对我们不再陌生
  9. jersey tomcat MySQL_使用 Jersey 和 Apache Tomcat 7 构建 JAX-RS 环境
  10. 玩转 SpringBoot 2 快速搭建 | IntellJ IDEA篇
  11. java fields是_一个快速生成R2.java中fields的插件
  12. CloudStack 4.4+KVM之通过ISO文件创建CentOS虚拟机
  13. 简单详细叙述FpGrowth算法思想(附python源码实现)
  14. 测试显卡风扇的软件,让噪音远离,显卡风扇转速调节
  15. cygwin安装apt-cyg命令
  16. pandas使用to_feather函数将dataframe保存为feather文件(需要依赖pyarrow包)提升大文件读取效率、pandas使用read_feather函数读取feather文件
  17. 使用PHPstudy在Windows服务器下部署PHP系统
  18. 解决IDEA 打不开问题
  19. 8051 Microcontroller仿真(一)- Proteus原理图
  20. 漫反射:兰伯特和半兰伯特

热门文章

  1. 咖啡烘焙饕餮盛宴——洛阳新都汇有你想要的感觉
  2. 怎么让一天有36小时
  3. c/c++编译器配置(交叉编译重要参数)、交叉编译动态库与as配置、mk初步
  4. Java 银联支付官网demo测试及项目整合代码
  5. java继承a mya new c,【转】Android应用程序完全退出
  6. 通过PHP调用天市数据的水电煤缴费接口
  7. 如何从一个虚拟主机迁移数据到另一个虚拟主机
  8. 苏宁易购 App 客户端架构演进
  9. threejs 绘制球体_Three.js基础探寻四——立方体、平面与球体
  10. java equals contains 不管用