码迷,mamicode.com
首页 >  
搜索关键字:尾递归    ( 197个结果
关于最大素数
这些天很无聊的了解了一下几个数学题     由对王垠的40行代码引发,先是研究了尾递归,后又由于王垠的文章《谈P=NP?》了解了一下当今数学的七大难题,于是又去查其中一个庞加莱猜想的事情(庞加莱猜想已经解决,后有丘成桐事件),另外哥德巴赫猜想的相关事情(陈景润的1+2,非七大难题),最后又回到P/NP问题(七大难题之一),结果不小心又无聊的去查了一下最大素数问题,更无聊的是还跟着去证明了一下。。...
分类:其他好文   时间:2015-01-15 11:00:50    阅读次数:174
逆转序列的递归/尾递归(+destructuring assignment)实现(JavaScript + ES6)
这里是用 JavaScript 做的逆转序列(数组/字符串)的递归/尾递归实现。另外还尝鲜用了一下 ES6 的destructuring assignment + spread operator 做了一个更 functional 的版本(只支持数组)。正确性能通过测试(参见 放在我 Github 上...
分类:编程语言   时间:2015-01-11 06:12:23    阅读次数:283
斐波那契数列 递归 尾递归 递推 C++实现
要理论的话,请自行翻阅《数据结构与算法分析 c语言描述》和《算法导论》,我就贴个代码,请勿吐槽。
分类:编程语言   时间:2015-01-06 11:21:50    阅读次数:170
10.4 第十章小结
10.4 第十章小结 在这一章,我们探讨了与函数程序效率有关的问题,讨论了用函数方式处理大量数据。因为大多数函数程序使用递归实现,这一章的很大一部分就是围绕这个主题。 可以看到,使用递归的代码,一定要仔细,避免由于递归太深,引起堆栈溢出的错误。在本章开头,我们讨论了一种称为尾递归的技术,它可用来重写我们熟悉的列表处理函数(如map and filter),能避免堆栈溢出。单靠尾递归,不...
分类:其他好文   时间:2015-01-04 09:58:51    阅读次数:112
10.3.2.1 使用连续处理树
10.3.2.1 使用连续处理树   要把我们以前实现的 sumTree 函数,转变成使用连续的版本,首先,要给这个函数添加一个额外的参数(连续);其次,还需要改变函数返回结果的方式,不是简单地返回值,而是把它作为参数值,给连续进行调用。 清单 10.18 是代码的最终版本。   清单 10.18 使用连续,计算树中元素的和 (F# Interactive) > let rec sumT...
分类:其他好文   时间:2015-01-03 21:06:33    阅读次数:186
10.3.2 利用连续的代码
10.3.2 利用连续的代码   问题是,我们既希望做尾递归调用,还要在尾递归调用完成后,再执行一些代码。这看起来是一个棘手的问题,但有一个有趣的解决方案。我们把要在递归调用完成后执行的所有代码,拿来作为参数值,提供给递归调用,这样,我们要写的函数将仅只包含一个递归调用。 可以把这个看作是另一种类型的累加器参数:我们不是累加值,而是累加“需要在以后运行的代码”。现在的问题是,我们如何能拿到其...
分类:其他好文   时间:2015-01-03 19:53:36    阅读次数:140
10.3 连续(continuations)
10.3 连续(continuations)   从本章开始,我们讨论递归调用。我们已经看到过尾递归(tail recursion),这是进行递归调用的重要技术,不需要在栈分配任何空间。由于有了尾递归,写出的函数式列表处理函数,能够处理大型数据集,而不需要出一身汗。 我们已经使用尾递归重写了许多函数,利用累加器参数,但并不是每个函数都能这样重写。如果函数需要执行两个递归调用,那么,很显然不能...
分类:其他好文   时间:2015-01-03 14:40:31    阅读次数:104
10.2.2.1 添加元素到列表
10.2.2.1 添加元素到列表   到目前为止,我们已经看到如何追加元素到已有(函数式)列表的前面;如果我们想在列表的末尾追加元素,又该如何做呢?这要求听起来是合理的,那么,我们尝试实现它。清单 10.10 显示了在列表的前面和在后面插入naïve 企图之间性能的差别。   清单10.10 在列表中添加元素(F# Interactive) > let prepend el list =...
分类:其他好文   时间:2015-01-01 00:15:00    阅读次数:240
10.2.1 用尾递归避免栈溢出(续!)
10.2.1 用尾递归避免栈溢出(续!)   [ naïve 不像是英语,不知道什么意思。 ] 第六章中的列表处理函数并不是尾递归。如果我们传递很大的列表,就会因栈溢出而失败。我们将用尾递归重写两个函数(map 和 filter),将改正这个问题。为了对照,在清单 10.8 中包括了原来的实现。为了避免名字冲突,已经改名为 mapN 和 filterN。   清单10.8 naïv...
分类:其他好文   时间:2014-12-30 17:15:25    阅读次数:182
Scala Tail Recursion (尾递归)
Scala对尾递归进行了优化,甚至提供了专门的标注告诉编译器需要进行尾递归优化。不过这种优化仅限于严格的尾递归,间接递归等情况,不会被优化。尾递归的概念递归,大家都不陌生,一个函数直接或间接的调用它自己,就是递归了。我们来看一个简单的,计算阶乘的例子。def factorial(n: Int): I...
分类:其他好文   时间:2014-12-28 01:44:32    阅读次数:133
197条   上一页 1 ... 14 15 16 17 18 ... 20 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!