可以使用递归实现斐波那契数列的计算,但是效率不高。为了提高效率,可以使用动态规划的思想,将已经计算过的斐波那契数列的值保存下来,避免重复计算。

以下是使用动态规划实现斐波那契数列的函数:

fibonacci n = fibs !! n where fibs = 0:1:zipWith (+) fibs (tail fibs)

这个函数定义了一个无限列表 fibs,其中第一个元素是 0,第二个元素是 1。接下来使用 zipWith 函数和 tail 函数,将 fibs 列表和它的尾部列表相加,得到新的列表,其中每个元素都是前两个元素的和。这样就得到了一个斐波那契数列的无限列表。最后,函数返回列表中第 n 个元素,即斐波那契数列的第 n 项。

Haskell 斐波那契数列高效计算 - 动态规划实现

原文地址: http://www.cveoy.top/t/topic/k3aC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录