Recursion 是否存在不是表格的斐波那契迭代实现?

Recursion 是否存在不是表格的斐波那契迭代实现?,recursion,iteration,dynamic-programming,fibonacci,Recursion,Iteration,Dynamic Programming,Fibonacci,我发现的所有迭代实现似乎都必须使用列表方法 动态规划是否只是递归的替代方案,而它是迭代的必选解决方案?一种不使用制表、记忆或交换变量的斐波那契迭代实现——这段代码来自我的回答 constappend=(xs,x)=> xs.concat([x]) 常数fibseq=n=>{ 设seq=[] 设a=0 设b=1 而(n>=0){ n=n-1 seq=追加(seq,a) a=a+b b=a-b } 返回顺序 } console.log(fibseq(500)) //[0,1,1,2,3,5,8,1

我发现的所有迭代实现似乎都必须使用列表方法


动态规划是否只是递归的替代方案,而它是迭代的必选解决方案?

一种不使用制表、记忆或交换变量的斐波那契迭代实现——这段代码来自我的回答

constappend=(xs,x)=>
xs.concat([x])
常数fibseq=n=>{
设seq=[]
设a=0
设b=1
而(n>=0){
n=n-1
seq=追加(seq,a)
a=a+b
b=a-b
}
返回顺序
}
console.log(fibseq(500))
//[0,1,1,2,3,5,8,13,21,34,55,…]
有一组斐波那契数作为二项式系数之和,其本身可以迭代计算,作为
(n-1)
1
s和
2
s的所有组成的表示

在哈斯克尔,我们可以写:

——https://rosettacode.org/wiki/Evaluate_binomial_coefficients#Haskell
序曲>选择n k=产品[k+1..n]`div`产品[1..n-k]
前奏曲>fib n=sum[(n-k-1)`选择'k | k fib 100
354224848179261915075

谢谢。我对Haskell不太熟悉,但我认为您的解决方案会从头开始对每个二项式重新计算。