「递归地推」递推和地推的区别
今天给各位分享递归地推的知识,其中也会对递推和地推的区别进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、什么是递归式?递推式?
- 2、哥德尔究竟做出了什么贡献,让人们赋予他如此伟大的光环
- 3、如何才能真正掌握递归的思想
- 4、求n!既可以用递归的方式,也可以用地推的方式
- 5、同样的算法,用递归是不是比递推慢很多
什么是递归式?递推式?
递归式
当递推式中只含数列中的项,而无常数项或其它项时,就叫做递归公式.所以递归公式属于地推公式,这样一个数列可以有三种给出的方法,例如自然数列用通项公式表示为:an=n 用递推公式表示为:an+1=an+1,初始条件为a1=1 用递归公式表示为:an+2=2an+1-an,初始条件,a1=1,a2=2 线性递归公式:递归公式的各项的次数均为一次时,便称为线性递归公式.用连续k项的表达式来表示紧接的后一项的线性递归公式叫做k阶线性递归公式,其一般形式如下:an+k=m1an+k-1+m2an+k-2+...+mkan
递推式
递推公式的概念:可以通过给出数列(按一定次序排列的一列数称为数列(sequence of number).数列中的每一个数都叫做这个数列的项.排在第一位的数称为这个数列的第1项(通常也叫做首项),排在第二位的数称为这个数列的第2项……排在第n位的数称为这个数列的第n项.所以,数列的一般形式可以写成a1,a2,a3,…,an,…简记为{an},)的第1项(或前若干项),并给出数列的某一项与它的前一项(或前若干项)的关系式来表示数列,这种表示数列的式子叫做这个数列的递推公式.递推公式是数列所特有的表示法,它包含两个部分,一是递推关系,一是初始条件,二者缺一不可.----还需要一个结论.就是一个规律.递推公式:如果一个数列的第n项an与该数列的其他一项或多项之间存在对应关系的,这个关系就称为该数列的递推公式.例如斐波纳契数列的递推公式为an=an-1+an-2 等差数列递推公式:an=an-1+d 等比数列递推公式:bn=bn-1×q
哥德尔究竟做出了什么贡献,让人们赋予他如此伟大的光环
主要成就
在20世纪初,他证明了形式数论(即算术逻辑)系统的“不完全性定理”:即使把初等数论形式化之后,在这个形式的演绎系统中也总可以找出一个合理的命题来,在该系统中既无法证明它为真,也无法证明它为假。
这一著名结果发表在1931年的论文中。他还致力於连续统假设的研究,在1930年采用一种不同的方法得到了选择公理的相容性证明。3年以后又证明了(广义)连续统假设的相容性定理,并于1940年发表。他的工作对公理集合论有重要影响,而且直接导致了集合和序数上的递归论的产生。
此外,哥德尔还从事哲学问题的研究。他热衷於用数理逻辑的方法来分析哲学问题,认为健全的哲学思想和成功的科学研究密切相关。他在1967年致中国数学家王浩的信中,自称为“客观主义”,并说他的客观主义观点对於他的逻辑研究来说是根本的。
1951年获爱因斯坦勋章。哥德尔一生发表论著不多。他发表於1931年的论文《〈数学原理〉(指怀德海和罗素所著的书)及有关系统中的形式不可判定命题》是20世纪在逻辑学和数学基础方面最重要的文献之一。
扩展资料
库尔特·哥德尔(Kurt Gödel)(1906年4月28日—1978年1月14日)是位数学家、逻辑学家和哲学家。其最杰出的贡献是哥德尔不完全性定理。
人物生平
生于捷克的布尔诺,卒于美国普林斯顿。1924年在维也纳大学攻读物理,1926年转到数学系,并参加哲学小组活动。1930年获博士学位。 其博士论文证明了“狭谓词演算的有效公式皆可证”。之后在维也纳大学工作。1938年到美国普林斯顿高等研究院任职,1948年加入美国籍。
1953年成为该所教授。哥德尔发展了冯·诺依曼和伯奈斯等人的工作,其主要贡献在逻辑学和数学基础方面。
参考资料来源:百度百科-哥德尔
如何才能真正掌握递归的思想
递归就是地推的类比;
第一递归必须有一个不用递归可以退出的条件。
第二递归必须能构达到退出的条件(递归必须终止)。
第三消除尾递归,保持高效。
很多数学公式不要用递归实现,用迭代吧!
求n!既可以用递归的方式,也可以用地推的方式
是的,求n!既可以用递归的方式,也可以用递推的方式实现的。需要两种中哪一种呢?
int fact(int n)
{return n==0?1:n*fact(n-1);}
==============
或:
int fact(int n)
{int f=1;
while(n)f*=n--;
return f;
}
同样的算法,用递归是不是比递推慢很多
如果单纯的递归一定会慢很多,因为你计算时反复计算了一些值,浪费了相当多的时间,
但是优化之后的递归和地推效率基本一样,虽然递归要进栈出栈花费时间,且容易因递归深度过大而栈溢出.
所谓的优化,就是记忆化,比如递归函数是f(a,b)
那么弄一个数组,f_r[a,b]
每次运行递归函数f(a,b)时,检测f_r[a,b]的值是否已定义,是则返回这个值,否则执行函数,且在函数返回前记录返回值到f_r[a,b]中.
关于递归地推和递推和地推的区别的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。