一、斐波那契数列
斐波那契数列为: 1 1 2 3 5 8 13 21 34 55 …
概念: 前两个值都为1,该数列从第三位开始,每一位都是当前位前两位的和 规律公式为: Fn = F(n-1) + F(n+1) F:指当前这个数列 n:指数列的下标
////斐波那契数列 递归写法
function
getFbnqslNum(
$n
) {
if
(
$n
==
0
) {
return
0
;
}
if
(
$n
==
1
) {
return
1
;
}
if
(
$n
>=
2
) {
return
getFbnqslNum(
$n
-
1
) +
getFbnqslNum(
$n
-
2
);
}
} //非递归写法: function getFbnqslNum($n){ //传入数列中数字的个数 if($n <= 0){ return 0; } $array[1] = $array[2] = 1; //设第一个值和第二个值为1 for($i=3;$i<=$n;$i++){ //从第三个值开始 $array[$i] = $array[$i-1] + $array[$i-2]; //后面的值都是当前值的前一个值加上前两个值的和 } return $array; } 二、杨辉三角 杨辉三角第一列的值全部为1,行列相等的列值全部为,其余的递推公式为f(i,j)=f(i-1,j-1) + f(i-1, j),其中i为行,j为列。
//获取杨辉三角
function
getYanghuiTriangle(
$line
) {
$arr
= [];
for
(
$i
=
0
;
$i
<
$line
; ++
$i
) {
//控制行数
for
(
$j
=
0
;
$j
<=
$i
; ++
$j
) {
//控制每一行的列值
if
(
$j
==
0
||
$i
==
$j
) {
$arr
[
$i
][
$j
]=
1
;
}
else
{
$arr
[
$i
][
$j
]=
$arr
[
$i
-
1
][
$j
]+
$arr
[
$i
-
1
][
$j
-
1
];
}
echo
$arr
[
$i
][
$j
].
"
\t
"
;
}
echo
"
\n
"
;
}
}