前言:
此时咱们对“阿克曼函数的递归过程”都比较关注,我们都想要了解一些“阿克曼函数的递归过程”的相关资讯。那么小编同时在网上汇集了一些有关“阿克曼函数的递归过程””的相关文章,希望我们能喜欢,姐妹们一起来了解一下吧!1.递归的数学函数
假定f(n)是直接递归的。要使函数f(n)的递归定义有一个完全的形式,需要满足如下条件:
①有一个基础部分,它包含n的一个或多个值,对这些值,f(n)是直接定义的(即不用递归就能求解)。为简单起见,我们假定f的定义域是非负整数,基础部分包含0≤n≤k,其中k为非负常数。
②在递归部分,右侧f有一个参数小于n,因此重复应用递归部分可以把右侧f的表达式转变为基础部分。
2.C++递归函数
程序1 计算n!的递归函数
int factorial(int n)
{
if (n <= 1) return 1;
else return n * factorial(n - 1);
}
程序2 累加数组元素a[0:n-1]
template<class T>
T sum(T a[], int n)
{
T theSum = 0;
for (int i = 0; i < n; i++)
theSum += a[i];
return theSum;
}
程序3 累加数组元素a[0:n-1]的递归代码
template<class T>
T rSum(T a[], int n)
{
if (n > 0)
return rSum(a, n - 1 + a[n - 1]);
return 0;
}
3.其他常见的递归函数斐波那契数列(Fibonacci)阿克曼函数(Ackerman)最大公约数(Greatest Common Divisor,GCD)格雷码(Gray Code):两个代码之间的海明距离是对应位不等的数量。例如,100和010的海明距离是2。一个(二进制)格雷码是一个代码序列,其中任意相邻的两个代码之间的海明距离是1。