首頁  >  文章  >  後端開發  >  PHP與黃金分割數列的完美邂逅(不可錯過)

PHP與黃金分割數列的完美邂逅(不可錯過)

青灯夜游
青灯夜游原創
2021-07-30 16:59:292785瀏覽

人生中,我們用肉眼分辨為美的事物,常常神奇地包含了黃金分割比,此時就不得不感嘆:數學的美麗無所不在。而黃金分割數列(又稱斐波那契數列)的後一項與前一項比值的極限就是二分之根號五減一,約等於0.618(即黃金分割比例)。那麼使用PHP要如何實現黃金分割數列呢,不急,我們慢慢來了解。

首先我們來了解一下黃金分割數列(即斐波那契數列):

斐波那契數列指的是這樣一個數列:

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

#'3兩個值都值)。 1,從第三位開始,每一位都是當前位前兩位的和 
  • 規則公式為: 

    Fn = F(n-1) F(n 1) 

  • F:指目前這個數列 
  • n:指數列的下標

  • 好了,了解了黃金分割數列(斐波那契數列),以下我們來了解使用PHP實現的方法。

    方法1:利用數組
  • 觀察上面給出的數列,結合數組知識,可以分析出:

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

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

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

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

可以得到:

PHP與黃金分割數列的完美邂逅(不可錯過)

a[0]=1

a[1]=2


PHP與黃金分割數列的完美邂逅(不可錯過)

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與黃金分割數列的完美邂逅(不可錯過)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn