ホームページ  >  記事  >  バックエンド開発  >  PHPの再帰とは何ですか

PHPの再帰とは何ですか

angryTom
angryTomオリジナル
2019-08-24 10:55:243196ブラウズ

PHPの再帰とは何ですか

プログラムが自分自身を呼び出すプログラミング手法は再帰と呼ばれます。アルゴリズムとしての再帰は、プログラミング言語で広く使用されています。プロセスまたは関数には、その定義または説明でそれ自体を直接または間接的に呼び出すメソッドがあります。通常、大規模で複雑な問題を、元の問題と同様の小さな問題に変換して解決します。再帰的戦略のみが必要です。必要なプログラムの数は少ないです。問題解決プロセスで必要となる複数の繰り返し計算を記述するため、プログラム コードの量が大幅に削減されます。再帰の力は、有限のステートメントを使用してオブジェクトの無限のコレクションを定義することにあります。一般に、再帰には境界条件、再帰的な前方セグメント、および再帰的な戻りセグメントが必要です。境界条件が満たされない場合、再帰は続行され、境界条件が満たされる場合、再帰は戻ります。

推奨チュートリアル: PHP ビデオ チュートリアル

## 再帰とは、実行中のプロセス中に自分自身を呼び出すことを意味します。

再帰を構成するために必要な条件:

ネストされた関数呼び出しプロセスの例

1. 副次問題は元の問題と同じである必要があります。問題、そしてそれはより簡単です;

2. 無制限に自分自身を呼び出すことはできません、出口がなければなりません、そしてそれは非再帰的な状況処理に単純化することができます。

数学とコンピューター サイエンスでは、再帰とは 1 つ (または複数) の単純な基本ケースによって定義されるオブジェクトまたはメソッドのクラスを指し、他のすべてのケースがその基本ケースに帰着できることを規定します。

たとえば、次は誰かの祖先の再帰的定義です:

誰かの両親はその人の祖先です (基本ケース)。誰かの祖先の親もまた誰かの祖先です (再帰ステップ)。黄金分割数列としても知られるフィボナッチ数列は、1、1、2、3、5、8、13、21.... I [1]

Theフィボナッチ数列は典型的な再帰的なケースです。

再帰的関係とは、エンティティがそれ自体との関係を確立することです。

Fib(0) = 1 [基本的な場合] Fib(1) = 1 [基本的な場合] すべての整数 n > 1 の場合: Fib(n) = (Fib(n-1) Fib(n -2) )) [再帰的定義] 多くの数学関数は再帰的に表現できますが、実際のアプリケーションでは、再帰的定義のオーバーヘッドが高く、法外なことがよくあります。例:

Factorial (1) = 1 [基本的なケース] すべての整数 n > 1: Factorial (n) = (n * Factorial (n-1)) [再帰的定義] 理解しやすいメンタル モデルでは、再帰的定義は、同じタイプの「以前に定義された」オブジェクトの観点からオブジェクトを定義します。例: 100 個の箱をどうやって移動できますか?答え: まずボックスを移動し、どこに移動したかを記録してから、より小さな問題に移ります。99 個のボックスをどうやって移動できるでしょうか?最終的に、問題は箱を移動する方法になりますが、あなたはすでにその方法を知っています。

このような定義は数学では非常に一般的です。たとえば、集合論における自然数の正式な定義は次のとおりです。1 は自然数であり、すべての自然数には後続の数があり、それも自然数です。

ドロステ効果

ドロステ効果は、再帰の視覚的な形式です。女性が持っている物の中には、同じ物を持っている自分の小さな写真があり、さらに同じ物を持っているさらに小さい写真もあり、というように続きます。

別の例として、向かい合う 2 つの鏡の間に火のついたろうそくを置くと、一方の鏡にろうそくが見え、そのろうそくの後ろに鏡があり、その鏡の中に別のろうそくが見えます。 ...これも再帰の現れです。

簡単なアプリケーション

function loop(){
 static $i = 0;
 echo $i.' ';
 $i++;
 if($i<10){
     loop();
 }
}
loop();//输出 0 1 2 3 4 5 6 7 8 9

以上がPHPの再帰とは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。