Dieser Artikel stellt hauptsächlich die rekursive Analyse in PHP vor, die einen gewissen Referenzwert hat. Jetzt können Freunde in Not darauf verweisen.
Was ist Rekursion?
Nennen Sie ein beliebtes Beispiel:
Es gibt einen 8 Pfund schweren Apfel, den Sie in Stücke schneiden möchten gleiches Gewicht. Mehrere Portionen mit einem Gewicht von jeweils nicht mehr als 1 Tael. Das fällt dir bestimmt ein:
1.Zuerst einen Apfel in 2 gleich schwere Teile A1 und A2 schneiden ;
2.Schneiden Sie einen Teil von A1 in zwei gleich schwere Teile, A11 und A12, und schneiden Sie A2 in zwei gleiche Teile von A21 und A22;
3.A11 in zwei gleiche Teile schneiden...
4.Bis jede kleine Portion kleiner oder gleich 1 Liang ist.
Das obige Beispiel ist ein rekursives Modell, das aus einem großen Ding mehrere kleine Dinge macht. Die Methode ist jedes Mal die gleiche.
Die Programmiertechnik eines Programms sich selbst aufrufend heißt Rekursion ( Rekursion). Rekursion umfasst direkte Rekursion und indirekte Rekursion
• Direkte Rekursion: Die Funktion ruft sich während der Ausführung selbst auf.
•Indirekte Rekursion: Eine Funktion ruft während der Ausführung andere Funktionen auf und ruft sich dann über diese Funktionen selbst auf.
Rekursion hat vier Merkmale:
1. Dort muss eine Abbruchbedingung sein, die endlich erreicht werden kann, sonst gerät das Programm in eine Endlosschleife
2. Das Problem ist größer als das ursprüngliche Problem. Klein oder näher an der Beendigungsbedingung.
3. Das Unterproblem kann sein gelöst durch erneuten rekursiven Aufruf oder direkt durch Erfüllung der Beendigungsbedingung ;4 Die Lösungen zu den
Unterproblemen sollten in der Lage sein zur Lösung des Gesamtproblems kombiniert werden.Das obige Beispiel erfüllt auch die oben genannten vier Eigenschaften:
(1).
Die Abbruchbedingung istDas Gewicht jeder Portion darf nicht größer als 1zwei sein.Die Größe jedes Teilstücks sollte sei größer Das letzte Mal war klein; (3).Die Methode zum Schneiden ist jedes Mal die gleiche, daher kann das Unterproblem rekursiv aufgerufen werden; (4) Jedes Mal, wenn es endgültig geschnitten wird, ist eine kleine Portion die erforderliche Lösung.
function cutApple($w,$t){ if($w<1){ echo "已经切完了"; } else{ echo "第".$t."次切割,每份重量是:".($w/2)."<br>"; $t+=1; cutApple($w/2,$t); } }
1. Schnitt, Das Gewicht pro Portion beträgt: 7,5
Für den 2. Schnitt beträgt das Gewicht jeder Portion: 3,75
Der 3. Schnitt, das Gewicht jeder Portion beträgt: 1,875Der 4. Schnitt, das Gewicht jeder Portion beträgt: 0,9375
Wurde abgeschnitten
Ein weiteres beliebtes Beispiel: Versuchen Sie, die Summe der arithmetischen Folge zu finden: 1+2 +3+4+...+98+100;
/** * 等差数列求和 * @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中文网!
相关推荐:
Das obige ist der detaillierte Inhalt vonÜber rekursive Analyse in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!