この記事では主に PHP のデータ構造に基づいた再帰を紹介しますが、これは参考になるものです。今回はそれを共有します。必要な友人は参考にしてください。
前に述べたように、再帰は大きな問題を小さな問題に分割する解決策です。一般に、再帰は関数自体の呼び出しと呼ばれます。このように言うと奇妙に聞こえるかもしれませんが、実際、再帰では関数はそれ自体を呼び出す必要があります。
たとえば、数学では、「階乗」という概念を誰もが知っています。たとえば、5 の階乗は 5*4*3*2*1
です。
これは再帰を反映しています。このことから、5 の階乗を段階的に別の小さな問題に変換したことがわかります。
すべての再帰呼び出しは、小さな副問題に基づいている必要があります。たとえば、5 の階乗は 5 に 4 を掛けた階乗です。
function factorial(int $n): int { if ($n = 0) { return 1; } return $n * factorial($n - 1); }
に
factorial(n)再帰と反復反復法を使用して上記の再帰コードを実装することもできます
function factorial(int $n): int { $result = 1; for ($i = $n; $i > 0; $i--) { $result*= $n; } return $result; }
フィボナッチ数列
数学では、フィボナッチ数列は特別な整数列です。数列内の各数値は、他の 2 つの数値の合計によって生成されます。ルールは次のとおりです。
function fibonacci($n) { if ($n == 0) { return 0; } if ($n == 1) { return 1; } return fibonacci($n - 1) + fibonacci($ - 2); }
function gcd(int $a, int $b) { if ($b == 0) { return $a; } return gcd($b, $a % $b); }
線形再帰
次の記事では、再帰を使用して、N レベル分類の構築、ネストされたコメントの構築、ディレクトリ ファイルの走査など、実際の開発で遭遇するいくつかの問題を解決します。
上記がこの記事の全内容です。皆様の学習に役立つことを願っています。その他の関連コンテンツについては、PHP 中国語 Web サイトに注目してください。
関連する推奨事項:
PHP でクライアントの実際の IP アドレスを取得する方法
PHP で Elasticsearch を使用する方法PHP
以上がPHPデータ構造に基づく再帰の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。