Heim >Backend-Entwicklung >PHP-Tutorial >PHP Hundred Money Hundred Chicken Problem (Drei Ideen und Antworten zur Problemlösung)
Ein mathematisches Problem, das der alte chinesische Mathematiker Zhang Qiujian im Buch „Suan Jing“ aufgeworfen hat: Ein Huhn ist fünf wert, eine Henne ist drei wert und drei Küken sind eins wert. Wenn Sie hundert Hühner für hundert Dollar kaufen, wie viel kosten dann die Hühner, Mütter und Küken?
Die Übersetzung lautet:
Hähne kosten jeweils 5 Yuan, Hühner kosten jeweils 3 Yuan und Küken kosten jeweils 1 Yuan. Ich habe 100 Hühner für 100 Yuan gekauft, wie viele sind es jeweils?
Im Folgenden wird PHP verwendet, um dieses Problem auf drei Arten zu lösen:
Annahme:
Wenn es 1 Hahn, 1 Henne und 1 Küken gibt, ist der Gesamtpreis: ..., falsch.
Bei 1 Hahn, 1 Henne und 2 Küken ist der Gesamtpreis: ..., falsch.
Bei 1 Hahn, 1 Henne und 3 Küken ist der Gesamtpreis: ..., falsch.
.............................
Wenn es 1 Hahn und 2 Hühner gibt, der kleine Für 1 Huhn ist der Gesamtpreis:..., falsch.
Wenn es 1 Hahn, 2 Hühner und 2 Küken gibt, ist der Gesamtpreis: ..., falsch.
Wenn es 1 Hahn, 2 Hühner und 3 Küken gibt, ist der Gesamtpreis: ..., falsch.
........................
Wenn es 100 Hähne und 100 Hühner gibt, gibt es 100 Küken, dann ist der Gesamtpreis:..., falsch.
Diese Art von Programmieridee wird als „erschöpfend“ bezeichnet, was bedeutet, dass alle möglichen Antworten aufgelistet und dann einzeln überprüft werden.
Der Code lautet wie folgt:
<?php $count = 0; for($gongji = 0;$gongji <= 100;$gongji++){ for ($muji=0; $muji <= 100; $muji++) { for ($xiaoji=0; $xiaoji <= 100 ; $xiaoji++) { if($gongji + $muji + $xiaoji ==100 && $gongji*5 + $muji*3 + $xiaoji / 3 == 100){ echo "<br>公鸡:$gongji,母鸡: $muji,小鸡: $xiaoji"; } $count++; } } } echo "<br>".$count;
Ergebnis:
Hahn: 0, Henne: 25, Küken: 75 Hahn: 4, Hennen: 18, Küken: 78 Hähne: 8, Hennen: 11, Küken: 81 Hähne: 12, Hennen: 4, Küken: 841030301
Der Code lautet wie folgt
$count = 0; for($gongji = 0;$gongji <= 100 / 5;$gongji++){ for ($muji=0; $muji <= 100 / 3; $muji++) { $xiaoji = 100 - $gongji - $muji; if($gongji*5 + $muji*3 +$xiaoji / 3 == 100){ echo "<br>公鸡:$gongji,母鸡: $muji,小鸡: $xiaoji"; } $count++; } } echo "<br>".$count;
Ergebnis:
Hahn: 0, Henne: 25, Küken: 75 Hähne: 4, Hühner : 18, Küken: 78 Hähne: 8, Hennen: 11, Küken: 81 Hähne: 12, Hennen: 4, Küken: 84714
Codes sind wie folgt
$count = 0; for($gongji = 0;$gongji <= 100 / 5;$gongji++){ for ($muji=0; $muji <= (100-$gongji*5) / 3; $muji++) { $xiaoji = 100 - $gongji - $muji; if($gongji*5 + $muji*3 +$xiaoji / 3 == 100){ echo "<br>公鸡:$gongji,母鸡: $muji,小鸡: $xiaoji"; } $count++; } } echo "<br>".$count;
Ergebnis:
Hahn: 0, Henne: 25, Küken: 75 Hahn: 4, Hennen: 18, Küken: 78 Hähne: 8, Hennen: 11, Küken: 81 Hähne: 12, Hennen: 4, Küken: 84364
Zusammenfassung:
Man kann sich leicht vorstellen, ein Triple für zu verwenden Schleife direkt, aber die Komplexität der Triple-for-Schleife ist zu groß, daher sollten Sie darüber nachdenken, die Schleife zu reduzieren. Ziehen Sie einfach die Hähne und Hühner von der Gesamtzahl der Hühner ab, um eine Schleifenschicht zu reduzieren, wodurch die Laufzeit verkürzt und die Codeeffizienz verbessert wird.
Das obige ist der detaillierte Inhalt vonPHP Hundred Money Hundred Chicken Problem (Drei Ideen und Antworten zur Problemlösung). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!