Wie implementiert man mithilfe eines Greedy-Algorithmus eine effiziente Lösung für das Problem des geringsten Münzwechsels in PHP?

PHPz
Freigeben: 2023-09-19 10:24:01
Original
1395 Leute haben es durchsucht

Wie implementiert man mithilfe eines Greedy-Algorithmus eine effiziente Lösung für das Problem des geringsten Münzwechsels in PHP?

Wie implementiert man mithilfe des Greedy-Algorithmus eine effiziente Lösung für das Problem des geringsten Münzwechsels in PHP?

Zitat:
Im täglichen Leben müssen wir oft etwas ändern, insbesondere beim Einkaufen oder Handeln. Um möglichst wenig Münzen zu verbrauchen, sollte der Wechselbetrag mit möglichst wenigen Münzen zusammengefasst werden. In der Computerprogrammierung können wir einen gierigen Algorithmus verwenden, um dieses Problem zu lösen und eine effiziente Lösung zu erhalten. Dieser Artikel beschreibt, wie man mithilfe des Greedy-Algorithmus in PHP eine effiziente Lösung für das Problem des minimalen Münzwechsels implementiert und stellt entsprechende Codebeispiele bereit.

  1. Prinzip des Greedy-Algorithmus
    Der Greedy-Algorithmus ist eine Idee zur Lösung von Problemen. Er wählt bei jedem Schritt die aktuell optimale Lösung aus und erhält schließlich die globale optimale Lösung. Beim Problem des minimalen Münzwechsels besteht die Idee des Greedy-Algorithmus darin, Münzen mit dem größten Nennwert auszuwählen, der kleiner oder gleich dem Zielbetrag ist, um jedes Mal Wechselgeld vorzunehmen, bis alle Münzen gefunden sind.
  2. Lösung für das Problem des minimalen Münzwechsels
    Im Folgenden finden Sie die Schritte zur Verwendung des Greedy-Algorithmus zur Lösung des Problems des minimalen Münzwechsels in PHP:

Schritt 1: Erstellen Sie eine Funktion mit dem Namen MinimumCoins, die zwei Parameter akzeptiert: Betrag (Betrag) und Münzwert-Array (Münzen).
Schritt 2: Definieren Sie ein leeres Ergebnisarray (Ergebnis), um die Münzkombination für das Wechselgeld zu speichern.
Schritt 3: Sortieren Sie das Münzwert-Array in absteigender Reihenfolge, um Münzen mit größeren Nennwerten von groß nach klein auszuwählen.
Schritt 4: Durchsuchen Sie das Münzwert-Array und wählen Sie jedes Mal Münzen aus, deren aktueller Nennwert kleiner oder gleich dem Zielbetrag ist, um Änderungen vorzunehmen.
Schritt 5: Aktualisieren Sie während des Änderungsvorgangs den Zielbetrag, fügen Sie den ausgewählten Münzwert zum Ergebnisarray hinzu und subtrahieren Sie den ausgewählten Münzwert vom Zielbetrag.
Schritt 6: Wiederholen Sie die Schritte 4 und 5, bis der Zielbetrag 0 beträgt.
Schritt 7: Geben Sie das Ergebnisarray zurück.

Das Folgende ist ein spezifisches PHP-Codebeispiel:

function minimumCoins($amount, $coins) {
    $result = []; // 存储找零的硬币组合
    rsort($coins); // 降序排列硬币面额数组
    
    foreach ($coins as $coin) {
        while ($coin <= $amount) {
            $result[] = $coin; // 将当前硬币面额添加到结果数组中
            $amount -= $coin; // 更新目标金额
        }
    }
    
    return $result;
}

$amount = 47; // 目标金额
$coins = [25, 10, 5, 1]; // 硬币面额数组
$result = minimumCoins($amount, $coins);

echo "找零组合:";
foreach ($result as $coin) {
    echo $coin . " ";
}
Nach dem Login kopieren

Der obige Code gibt Folgendes aus: „Änderungskombination: 25 10 10 1 1“, das heißt, es werden 5 Münzen benötigt, um 47 Yuan zu wechseln.

  1. Zeitkomplexität und Raumkomplexität
    Die Zeitkomplexität der Verwendung des Greedy-Algorithmus zur Lösung des Problems des minimalen Münzwechsels beträgt O(n), wobei n die Anzahl der Münzstückelungen ist. Die Speicherplatzkomplexität beträgt O(1), da zum Speichern des Ergebnisses nur konstanter zusätzlicher Speicherplatz erforderlich ist.

Fazit:
Durch die Verwendung des Greedy-Algorithmus können wir das Problem des minimalen Münzwechsels in PHP effizient lösen. Dieses Problem ist im täglichen Leben sehr praktisch und der Greedy-Algorithmus bietet eine einfache und effiziente Lösung. Ich hoffe, dass die in diesem Artikel bereitgestellten Codebeispiele und Lösungsideen für Sie hilfreich sind.

Das obige ist der detaillierte Inhalt vonWie implementiert man mithilfe eines Greedy-Algorithmus eine effiziente Lösung für das Problem des geringsten Münzwechsels in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage