實作方法:1、用陣列來求,語法「for($i=0;$i

本教學操作環境:windows7系統、PHP8版、DELL G3電腦
斐波那契數是什麼
斐波那契數列(Fibonacci sequence),又稱黃金分割數列、因數學家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數列”,指的是這樣一個數列:
1 | 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765.......
|
登入後複製
即:前兩個值都為1,從第三位開始,每一位都是當前位前兩位的和

在數學上,斐波那契數列如下被以遞推的方法定義:
1 | F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)
|
登入後複製
好了,了解了斐波那契數列,下面我們來了解使用PHP實作的方法。
方法1:利用陣列
#觀察上面給出的數列,結合陣列知識,可以分析出:
可以得到:
#程式碼實作:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?php
header( "Content-type:text/html;charset=utf-8" );
function test( $num ){
$arr =[];
for ( $i =0; $i < $num ; $i ++)
{
if ( $i ==0 || $i ==1){
$arr [ $i ]=1;
} else {
$arr [ $i ]= $arr [ $i -1]+ $arr [ $i -2];
}
echo $arr [ $i ]. " " ;
}
}
echo "斐波那契数列前10位:" ;
test(10);
echo "<br>斐波那契数列前11位:" ;
test(11);
echo "<br>斐波那契数列前12位:" ;
test(12);
?>
|
登入後複製
輸出:


### ##了解如何利用陣列來求斐波那契數列,下面我們來看看利用遞歸來求斐波那契數列。 ############方法2:使用遞迴#########
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php
header( "Content-type:text/html;charset=utf-8" );
function fbnq( $n ) {
if ( $n <= 0) {
return 0;
}
if ( $n == 1 || $n == 2) {
return 1;
}
return fbnq( $n - 1) + fbnq( $n - 2);
}
echo "斐波那契数列第10位:" . fbnq(10);
echo "<br>斐波那契数列第11位:" . fbnq(11);
echo "<br>斐波那契数列第12位:" . fbnq(12);
?>
|
登入後複製
###輸出:##################遞歸法也實作出來了,是不是很簡單! ######遞歸演算法可以將一個負責的問題使用較短的程式碼將問題解決出來,但是運行的效率比較低。 ######推薦學習:《###PHP影片教學###》###
以上是怎麼用php實作斐波那契數列的詳細內容。更多資訊請關注PHP中文網其他相關文章!