您好,登錄后才能下訂單哦!
這篇文章主要介紹了如何用php實現斐波那契數列的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇如何用php實現斐波那契數列文章都會有所收獲,下面我們一起來看看吧。
實現方法:1、用數組來求,語法“for($i=0;$i<$n;$i++){if($i==0||$i==1){$arr[$i]=1;}else{$arr[$i]=$arr[$i-1]+$arr[$i-2];}echo $arr[$i];}”;2、用遞歸,語法“f($n){if($n==1||$n==2){return 1;}return f($n-1)+f($n-2);}}”。
斐波那契數是什么
斐波那契數列(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,從第三位開始,每一位都是當前位前兩位的和
在數學上,斐波那契數列以如下被以遞推的方法定義:
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);
?>
輸出:
了解了如何利用數組來求斐波那契數列,下面我們來看看利用遞歸來求斐波那契數列。
方法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實現斐波那契數列”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。