Ackermann函数

原创 2015年11月17日 16:13:53
#include "iostream"
#include "fstream"
using namespace std;

/*
a(m, n)= n + 1               m = 0
       = a(m-1, 1)           m>0, n=0
       = a(m-1, a(m, n-1))   m>0, n>0

  */

int a[20][20];

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));
}

int main()
{
    memset(a, 0, sizeof(a));
    int m, n;
    cout << "输入m:" ;
    cin >> m;
    cout << "输入n:";
    cin >> n;
    cout << "ackermann(" << m << "," << n << ")=" << ack(m, n) << endl;
    return 0;
} 

这里写图片描述

但以下结果是错误的,也不知为什么

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

这样是对的,但失去了备忘录的意义

int ack(int m, int n)
{
    if(m==0) 
        return a[m][n] = n+1;
    else if(n==0) 
        return a[m][n] = ack(m-1,1);
    else 
        return a[m][n] = ack(m-1,ack(m,n-1));
}
版权声明:本文为博主原创文章,转载请注明出处。 举报

相关文章推荐

[SICP][1.10]Ackermann函数

阿克曼函数

UVa 371 Ackermann Functions (water ver.)

371 - Ackermann Functions Time limit: 3.000 seconds  http://uva.onlinejudge.org/index.php?option=c...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

做项目可能用到的函数函数函数函数函数函数函数函数函数函数函数函数函数

函数  preg_match,number_format,function_exists,str_repeat,array_pop,array_unique,array_merge,preg_repl...

strlen函数,strcat函数,strcpy函数,strncpy函数,strcmp函数

strlen函数,strcat函数,strcpy函数,strncpy函数,strcmp函数 strcpy函数: char *strcpy(char *Dest , const ch...

strlen函数,strcat函数,strcpy函数,strncpy函数,strcmp函数

strcpy函数: char *strcpy(char *Dest , const char *Src)   {       assert((...

Oracle listagg函数、lag函数、lead函数

原文:http://blog.sina.com.cn/s/blog_4cef5c7b01016efp.html   Listagg函数 我们有时候会遇到这样的需求:“对员工列表进行操作,将每个部...
  • yin_jw
  • yin_jw
  • 2014-11-03 18:02
  • 1280

js学习day4

函数判断类型 typeof(),函数也是一种数据的类型。 函数是可以嵌套定义的,尽量不要这么嵌套函数。 三种函数的定义function语句式占用内存,但是声明一次随时可以调用 对于函数式的语句js会...

例说SQL Server 2008 聚合函数

创建tb_Students表并插入3条测试数据。 CREATE TABLE tb_Students( id int NOT NULL IDENTITY, name NVARCHAR(16) NOT N...
  • tiana0
  • tiana0
  • 2014-04-04 21:43
  • 1638

python-map()函数,reduce()函数,filter()函数

map()是python内置高阶函数(能接受函数作为参数传递的函数),它接受一个函数f和一个list,并把函数f作用在list的每一个元素上,得到一个新list并返回(不改变原有list)。 示例l...

WriteProfileString 函数 , WritePrivateProfileString 函数, WritePrivateProfileStruct 函数

WriteProfileString 函数: 背景:    调用了WriteProfileString, 却不知道该配置信息到底是注册表中,还是在INI文件中. 经过在网上查询, 在windows的目...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)