ホームページ >バックエンド開発 >PHPチュートリアル >PHPでの再帰分析について
この記事では、主に php での再帰分析を紹介します。これは、必要な友人に参考にしていただけると思います。
再帰とは何ですか?
一般的な例を挙げてください:
#8 ポンドのリンゴがあり、それを切り分けたいと考えています。同じ重さのいくつかの部分、それぞれの重さは 1 テール以下です。あなたは間違いなくこれを行うことを考えるでしょう:
1.まず、リンゴを同じ重さの 2 つの部分 A1 と A2 に切ります。
2.A1 の 1 つの部分を A11 と A12 の 2 つの等しい部分に切り、A2 を 2 つの等しい部分 A21 に切ります。と A22;
#3.A11 を 2 つの等しい部分に切ります...
#4.各小部分が 1 梁以下になるまで。
#上記の例は、大きなものをいくつかの小さなものに変える再帰的モデルであり、その方法は毎回同じです。Program
Self自分自身を呼び出すプログラミング手法は、Recursion と呼ばれます。 (再帰)。 再帰には直接再帰と間接再帰が含まれます
•直接再帰: 関数は実行中にそれ自体を呼び出します。•間接再帰: 関数は実行中に他の関数を呼び出し、その後、これらの関数を通じて自分自身を呼び出します。 再帰には 4 つの特徴があります: 1.最終的に到達できる終了条件でなければなりません。そうでない場合、プログラムは無限ループに陥ります。問題の規模が元の問題よりも大きい 小さい、または終了条件に近い 3.副問題は次のようなものである可能性があります。終了条件が満たされているため、再帰的に呼び出すか、直接呼び出すことで解決できます。 ; 4.副次的な問題の解決策は、次のとおりです。問題全体の解決策に組み合わされる必要があります。 (1). 終了条件は次のとおりです。各部分の重量は 1 (2) を超えることはできません。各カットのサイズは次のとおりです。より大きい 前回は小さい;(3).切断方法は毎回同じなので、部分問題は再帰的に呼び出すことができます; (4).最終的にカットするたびに、必要な溶液は少量です。 #1 回目のカット、重量各部分は 7.5 2 番目の切断、各部分の重量は 3.75 3 番目のカット、各ピースの重さは 1.875 4 番目のカット、各ピースの重さは 0.9375 もう 1 つのよくある例: 等差数列の合計を求めてみます: 1 2 3 4 ... 98 100; 以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网! 相关推荐:function cutApple($w,$t){
if($w<1){
echo "已经切完了";
}
else{
echo "第".$t."次切割,每份重量是:".($w/2)."<br>";
$t+=1;
cutApple($w/2,$t);
}
}
結果:
カットされました /**
* 等差数列求和
* @param [int] $n [第一个数]
* @param [int] $m [第二个数]
*/
function add($n,$m){
if(!is_int($n)||!is_int($m))
return false;
static $sum=0;
$sum+=$n;
$n++;
if($n>$m) return $sum;
return add($n,$m);
}
echo add(1,100);
以上がPHPでの再帰分析についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。