ホームページ >バックエンド開発 >PHPチュートリアル >PHP 再帰アルゴリズムの簡素化

PHP 再帰アルゴリズムの簡素化

韦小宝
韦小宝オリジナル
2018-01-30 10:33:521506ブラウズ

再帰関数は、関数本体内で直接または直接呼び出す自己呼び出し関数ですが、自己呼び出しの条件を設定する必要があり、条件が満たされていない場合は関数自体が呼び出されます。と説明すると、この関数の自己呼び出しが停止され、現在のプロセスの制御が上位関数に返されて実行されます。このように説明してもまだわかりにくいかもしれません。

たとえば、次のコード:

function test ($n){
    echo $n."  ";
    if($n>0){
        test($n-1);
    }else{
        echo "";
    }
    echo $n."  "
}
test(2)

この例の最終的な出力結果は 2 1 05fb6f3beb31540706eb26a1cd1069f9d0 1 2 です

出力がこのようになる理由を説明します

最初のステップは次のとおりです。 test(2) を実行し、echo 2 を実行します。2>0 であるため、test(1) を実行します。実行する時間がない echo 2 がまだあります。2 番目のステップは、test(1) を実行し、echo 1 を実行します。 1>0、test(0) の実行、同様に、実行する時間がなかった echo 1 があります。3 番目のステップは、test(0) の実行、echo 0、test(0) の実行、echo 0 です。時間になると、0>0の条件が満たされなくなり、test()関数は実行されなくなりますが、echo ""となり、後続のecho 0が実行されます

これで、関数は自分自身を呼び出すことがなくなり、プロセスの制御を実行のために上位層関数に返します。つまり、関数は今すべての test() の実行を開始します。関数には最後のエコーを出力する時間がありませんでした。0 より上の層は 1 であることを意味します。 1 を出力します。1 の上の層は 2 です。これは、2 を出力することを意味します。2 には層がないため、出力内容は 2 1 0<–> ;0 1 2

関連書籍:

php 再帰アルゴリズム

php 再帰アルゴリズム: php 再帰アルゴリズム PHP ツリー - 再帰は必要ありません: /*** 親ノード ツリーを作成します

array

* パラメータ * $ar array...

php 再帰アルゴリズム よく使用されるアルゴリズムPHP インタビュー

php 再帰アルゴリズム:php 再帰アルゴリズム PHP インタビューの一般的なアルゴリズム...

PHP WeChat レッドエンベロープに基づく php 再帰アルゴリズム アルゴリズムのディスカッション

php 再帰アルゴリズム: PHP WeChat レッドエンベロープに基づく PHP 再帰アルゴリズムアルゴリズムのディスカッション: 思いつきで、同窓会 WeChat グループに赤い封筒を送りました。赤い封筒の総額を 10 元に設定し、28 人がランダムに受け取れるようにサポートしました。 ...

以上がPHP 再帰アルゴリズムの簡素化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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