先看百科的解释
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列: 1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)在现代物理、准晶体结构、化学等领域, 斐波纳契数列都有直接的应用,为此,美国数学会从1963年起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果
通俗得说也就是该数列从第三项开始每一项都是前两项之和,实现这个算法特别容易
$arr[0] = 0;
$arr[1] = 1;
for($i = 2; $i < 10; $i++){
$arr[$i] = $arr[$i-1] + $arr[$i-2];
}
echo join(",", $arr);
也可以封装成函数
function fbnc($idx) {
// 1 1 2 3 5 8 13 21 34
if ($idx < 0) {
return -1;
}
if ($idx === 0 || $idx === 1) {
return 1;
}
return fbnc($idx - 1) + fbnc($idx - 2);
}
echo fbnc(8); // Output: 34