ホームページ > バックエンド開発 > PHPの問題 > PHPを使ってフィボナッチ数列を実装する方法

PHPを使ってフィボナッチ数列を実装する方法

青灯夜游
リリース: 2023-03-17 22:24:01
オリジナル
4678 人が閲覧しました

実装方法: 1. 配列を使用して検索します。構文 "for($i=0;$i

PHPを使ってフィボナッチ数列を実装する方法

このチュートリアルの動作環境: Windows7 システム、PHP8 バージョン、DELL G3 コンピューター

フィボナッチ数とは

フィボナッチ数列は、黄金分割数列とも呼ばれ、数学者レオナルドダ・フィボナッチがウサギの生殖を例として紹介したことから「ウサギ数列」とも呼ばれています。

1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765.......
ログイン後にコピー

つまり、最初の 2 つの値は両方とも 1 で、3 桁目から始まり、各桁は現在の桁の前の桁です。2 桁の合計

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を使ってフィボナッチ数列を実装する方法 ## 配列を使用してフィボナッチ数列を見つける方法を理解したところで、再帰を使用してフィボナッチ数列を見つける方法を見てみましょう。

方法 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
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
PHP 拡張子 intl
から 1970-01-01 08:00:00
0
0
0
phpのデータ取得?
から 1970-01-01 08:00:00
0
0
0
PHP GET エラー レポート
から 1970-01-01 08:00:00
0
0
0
phpを上手に学ぶ方法
から 1970-01-01 08:00:00
0
0
0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート