1、递归函数: 编程语言中,函数Func(Type a,……)直接或间接调用函数本身,则该函数称为递归函数。
2、递归函数不能定义为内联函数。
3、 在数学上,关于递归函数的定义如下:对于某一函数f(x),其定义域是集合A,那么若对于A集合中的某一个值X0,其函数值f(x0)由f(f(x0))决定,那么就称f(x)为递归函数。
(资料图)
4、 介绍: 在数理逻辑和计算机科学中,递归函数或μ-递归函数是一类从自然数到自然数的函数,它是在某种直觉意义上是"可计算的" 。
5、事实上,在可计算性理论中证明了递归函数精确的是图灵机的可计算函数。
6、递归函数有关于原始递归函数,并且它们的归纳定义(见下)建造在原始递归函数之上。
7、但是,不是所有递归函数都是原始递归函数 — 最著名的这种函数是阿克曼函数。
8、 其他等价的函数类是λ-递归函数和马尔可夫算法可计算的函数。
9、 例子: //代码1 void func() { //... if(...) func(); else //... } 条件 一个含直接或间接调用本函数语句的函数被称之为递归函数,在上面的例子中能够看出,它必须满足以下两个条件: 1) 在每一次调用自己时,必须是(在某种意义上)更接近于解; 2) 必须有一个终止处理或计算的准则。
10、 例如: 梵塔的递归函数 //C void hanoi(int n,char x,char y,char z) { if(n==1) move(x,1,z); else { hanoi(n-1,x,z,y); move(x,n,z); hanoi(n-1,y,x,z); } } 阶乘的递归函数,公式如下: //C++ int Factorial(int n) { if(n==0||n==1) return 1; else return n * Factorial(n-1) }。
本文到此分享完毕,希望对大家有所帮助。
热门
联系我们:435 226 40 @qq.com
版权所有 重播新闻网 www.zhongboxinwen.com 京ICP备2022022245号-17