PHP と黄金分割シーケンスとの完璧な出会い (お見逃しなく)

青灯夜游
リリース: 2023-04-10 13:02:01
オリジナル
2848 人が閲覧しました

人生において、私たちが肉眼で美しいと判断するものには、魔法のように黄金比が含まれていることがよくありますが、このとき私たちはため息をつきます。黄金分割数列 (フィボナッチ数列とも呼ばれる) の前期と前期の比率の限界は、2/2 から 1 を引いた根で、約 0.618 (つまり、黄金分割比) に等しくなります。では、PHP を使用して黄金分割シーケンスを実装するにはどうすればよいでしょうか? 心配しないで、時間をかけて理解しましょう。

まず第一に、黄金分割数列 (つまり、フィボナッチ数列) を理解しましょう:

フィボナッチ数列は、この A 数列を指します:

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

つまり、最初の 2 つの値は 1 です。 3 桁目以降、各桁は現在の桁の最初の 2 桁の合計です。

通常の式は次のとおりです:

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];

  • #次のように結論付けることができます:

  • 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ビデオチュートリアル

以上がPHP と黄金分割シーケンスとの完璧な出会い (お見逃しなく)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート