【C/C++】阿克曼函数以及其数学的有限边界思维
## 在递归函数论和涉及集合的并的某些算法的复杂性研究中,有一个起重要作用的递归函数——阿克曼(Ackermann)函数,该函数是由希尔伯特的学生,德国著名数学家威尔海姆·阿克曼于1928年发现的。这是一个图灵机可计算的,但不是原始递归的函数。下面,我们介绍这个经典的递归函数,并给出其相应的计算过程。
公式:
例如:
A( 1 ,2 )= A ( 0 , A ( 1 , 1 ) )
=A ( 0 , A ( 0 , A ( 1 , 0 ) ) )
=A ( 0 , A ( 0 , A ( 0 , 1 ) ) )
=A ( 0 , A ( 0 , 2 ) )
=A ( 0 , 3 )
=4
下面我们将用程序对其进行运算;
##递归算法:
#include<stdio.h>
#include<math.h>
using namespace std;
int Ackermann(int m,int n)
{if(m==0){return n+1;}else if(n==0){return Ackermann(m-1,1);}else(m>0&&n>0);{return Ackermann(m-1,Ackermann(m,n-1));}
}
int main(void)
{int t=0;int a,b;printf("please input (a,b):");scanf("%d %d",&a,&b);t=Ackermann(a,b);printf("Ackermann:%d",t);return 0;
}
##程序解析:
##输出结果:
#############################################################################
简单的阿克曼函数:
A (1,0) | 2 |
A (1,1) | 3 |
A (1,2) | 4 |
A (2,0) | 3 |
A (2,1) | 5 |
A (2,2) | 7 |
A (3,0) | 5 |
A (3,1) | 13 |
A (3,2) | 29 |
A (3,3) | 61 |
#############################################################################
【思维的有限边界性——阿克曼函数】
在上面我们举了A(1,2)这一个简单的数。但当你将这个数变大时,你就会发现计算机很慢才会输出结果或者不再会输出结果,比如A(4,3)这组数。这样超大一类的数早就超出了宇宙的范围,而对于大于 A(4,3) 这样的数,我认为这已经是超出了人类的思维计算极限。这样的数对我们的生活是没有多大意义的,甚至对于科学研究也是难见其意义的,所以我认为一般不对其进行深究,而对其进行一些简单的掌握即可。
##下面我引用一个比较经典的例子来证明这个无穷性:
【C/C++】阿克曼函数以及其数学的有限边界思维相关推荐
- 习惯性朴实简单!一起学习MySQL常见单行函数,字符数学日期流程控制
文章目录 一.字符函数 二.数学函数 三.日期函数 四.其他函数 五.流程控制函数 一.字符函数 1.大小写控制函数 ①UPPER():转换成大写 SELECT UPPER('Hello'); ②LO ...
- 语言阿克曼函数_函数式的动态规划
函数式的动态规划 动态规划是一类很常用的算法,在C/C++/Java中一般使用于数组进行记忆化.而函数式编程语言一般无法方便地操作数组这些依赖副作用的数据结构,函数式的记忆化便要另寻他法. 本文就是一 ...
- B - 阿克曼函数(记忆化搜索(啊呸))
在我的不懈努(爆)力(零)下,我把阿克曼函数的记忆化搜索用我的泥头车创出来了(啧),不过这个记忆化应该不是最优解(或者说仿?),31ms跑完小数据,说实话有点慢(确实),如果有大lao写出了正宗的记忆 ...
- ACM Ackermann function(阿克曼函数)
这个问题真没想到,没留意M最大只有3,也完全没有想到用公式啥的,当时没往这方面想,直接按递归公式写的算法,结果狠狠的巴掌:超时了.... 问题描述 众所周知,阿克曼函数中扮演一个重要的角色在理论计算机 ...
- 栈的应用4——递归函数的非递归形式(主讲阿克曼函数的非递归形式)
递归 函数自己调用自己 如求阶乘函数: int jiecheng(int n) {if(n==0)return 1;if(n==1)return 1;else return n*jiecheng(n- ...
- 阿克曼函数推导过程(m=3)
阿克曼函数(Ackermann)是非原始递归函数的例子.它需要两个自然数作为输入值,输出一个自然数.它的输出值增长速度非常快,仅是对于(4,3)的输出已大得不能准确计算. \[ A(m, n)=\le ...
- 算法:阿克曼函数(C++)
算法原理 阿克曼函数定义: { 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 #inc ...
- 苹果手机计算机三角函数教程,Excel函数应用教程:数学和三角函数3
Excel函数应用教程:数学和三角函数3 分类:计算机等级| 更新时间:2011-04-30| 来源:Thea 21.INT 用途:将任意实数向下取整为最接近的整数. 语法:INT(number) 参 ...
- Excel函数大全-11数学和三角函数
11数学和三角函数 全部数学和三角函数列表 11x01 AGGREGATE 函数 语法 11x02 ARABIC 函数 语法 11x03 BASE 函数 语法 11x04 CEILING 函数 语法 ...
最新文章
- php跨域共享session
- 【随笔】express中间件系统的基本实现
- java调用spark_spark中的并行方法调用以及传递方法中使用spark会话
- %3c php foreach%3e,PHP 数组函数-数组排序
- Floyd Warshall算法
- Nginx的启动阶段讲解
- idea错误提示不明显_微信公众号扫一扫功能提示:10003 redirect_uri域名与后台配置不一致错误解决方案...
- Django模板层:模板继承 extends标签和block标签,csrf_token标签
- 快速阅读软件工程后的几个问题
- 蓝桥杯 ADV-80 算法提高 选最大数
- JAVA微信小程序论坛系统毕业设计 开题报告
- WebWork深度探索之Pitfall
- 一键同步Elasticsearch,DataWorks数据集成同步解决方案上线!
- Maven项目集成cxf框架发布WebService
- Consul微服务注册与发现
- 基于git(分布式版本控制系统)的各种服务器权限工具对比 Gitlab服务器搭建 以及邮箱、LDAP配置 实现公司多人协同开发
- ҉菊҉花҉文҉生҉成҉器҉
- 堵俊平:开放治理是开源社区的终极之路 | DEV. Together 2021 中国开发者生态峰会...
- 0824模拟赛解题报告
- 利用游戏软件注入漏洞渗透安卓手机