怎麼用php實作斐波那契數列

青灯夜游
發布: 2023-03-17 22:24:01
原創
4623 人瀏覽過

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

怎麼用php實作斐波那契數列

本教學操作環境:windows7系統、PHP8版、DELL G3電腦

斐波那契數是什麼

斐波那契數列(Fibonacci sequence),又稱黃金分割數列、因數學家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數列”,指的是這樣一個數列:

1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765.......
登入後複製

即:前兩個值都為1,從第三位開始,每一位都是當前位前兩位的和 

怎麼用php實作斐波那契數列

在數學上,斐波那契數列如下被以遞推的方法定義:

F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)
登入後複製
  • F:指目前這個數列 

  • n:指數列的下標

好了,了解了斐波那契數列,下面我們來了解使用PHP實作的方法。

方法1:利用陣列

#觀察上面給出的數列,結合陣列知識,可以分析出:

  • 數組下標為0或1時,當元素的值為1

  • 數組下標為2時,元素是a[0] a[1];

  • 當陣列下標示為3時,元素是a[1] a[2];

  • .....

  • 當陣列下標示為n時,元素是a[n-2] a [n-1];

可以得到:

  • a[0]=1

  • #a[1]=2

  • #a[n]=a[n-2] a [n-1]   (n>2)

#程式碼實作:

<?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);
?>
登入後複製

輸出:

怎麼用php實作斐波那契數列


怎麼用php實作斐波那契數列

### ##了解如何利用陣列來求斐波那契數列,下面我們來看看利用遞歸來求斐波那契數列。 ############方法2:使用遞迴#########
<?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中文網其他相關文章!

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板