Aktueller Standort: Startseite> Neueste Artikel> Beispiel für PHP implementiert WeChat Red Envelope -Betrag Aufteilungsalgorithmus | Zufällige Methode zur Allokation der roten Umschlagbetragung

Beispiel für PHP implementiert WeChat Red Envelope -Betrag Aufteilungsalgorithmus | Zufällige Methode zur Allokation der roten Umschlagbetragung

gitbox 2025-07-27

Beispiel für Algorithmus

Die Betragaufteilung von WeChat Red -Umschlägen ist ein häufiges Problem. In diesem Artikel wird ein Algorithmus -Beispiel für die Aufteilung der roten Umschlagbetrag über die PHP -Sprache implementiert, um den Entwicklern zu helfen, die zufällige Zuweisung von roten Umschlagbeträgen besser zu verstehen.

Eine Funktion erstellen

Zunächst müssen wir eine Funktion erstellen, um die Menge des roten Umschlags zu teilen. Die Parameter der Funktion sind die rote Umschlagbetrag und die rote Umschlagnummer.

 
function divideAmount($amount, $num) {
    // TODO: Umsetzen
}

Algorithmus -Ideen

Anschließend analysieren wir die algorithmischen Ideen für die Aufteilung der roten Umschlag.

Unter der Annahme, dass die Menge an roten Umschlägen ein Yuan ist und die Anzahl der roten Umschläge n ist, dann beträgt die maximale Menge jeder roten Hülle A/N Yuan und die Mindestmenge 0,01 Yuan.

Wir können zunächst zufällig n-1-Zufallszahlen zwischen 0 und A als anfängliche Menge der roten Hülle erzeugen. Dann die verbleibende Menge dem letzten roten Umschlag zuordnen.

Algorithmus -Implementierung

Jetzt beginnen wir mit der Implementierung des Algorithmus der Red -Hüllkurve -Betrag, die Aufteilung des Hüllkurses.

 
function divideAmount($amount, $num) {
    $remainAmount = $amount; // Verbleibende Menge
    $remainNum = $num; // Die verbleibende rote Umschlagzahl
    $result = array(); // Teilen Ergebnisse
    for ($i = 0; $i < $num - 1; $i++) {
        $maxAmount = $remainAmount / $remainNum * 2; // Höchstbetrag
        $randAmount = mt_rand(1, $maxAmount * 100) / 100; // Zufällig erzeugte Menge,Halten Sie zwei Dezimalstellen
        $remainAmount -= $randAmount; // 更新Verbleibende Menge
        $remainNum--; // 更新Die verbleibende rote Umschlagzahl
        $result[] = $randAmount; // Fügen Sie die Menge dem Ergebnisarray hinzu
    }
    $result[] = $remainAmount; // 将Verbleibende Menge添加到结果数组
    return $result;
}

Algorithmus Erklärung

Zunächst müssen wir zwei Variablen definieren, $ rema -armount repräsentiert den verbleibenden Betrag, und $ restnum repräsentiert die verbleibende rote Umschlagzahl.

In der Schleife berechnen wir zunächst den maximalen Betrag $ maxamount und verwenden dann die MT_RAND -Funktion, um einen Betrag $ randamount zwischen 1 und $ maxamount zufällig zu generieren. Als nächstes aktualisieren wir den verbleibenden Betrag und die verbleibende rote Umschlagnummer und fügen dann $ Randamount zum Ergebnisarray hinzu.

Schließlich fügen wir den verbleibenden Betrag dem Ergebnisarray hinzu und geben das Ergebnisarray zurück.

Probenlauf

Testen wir den Betriebseffekt dieses Algorithmus.

 
$amount = 10; // Rote Umschlagbetrag
$num = 5; // Anzahl der roten Umschläge
$result = divideAmount($amount, $num);
foreach ($result as $amount) {
    echo $amount . "Yuan\n";
}

Führen Sie den obigen Code aus und das Ausgabeergebnis lautet wie folgt:

 
1.07Yuan
2.48Yuan
2.28Yuan
2.42Yuan
1.75Yuan

Es ist ersichtlich, dass die rote Umschlagbetrag erfolgreich in 5 verschiedene Mengen aufgeteilt wurde.

Zusammenfassen

Dieser Artikel implementiert ein Algorithmus -Beispiel für die Aufteilung der WeChat -Red -Hüllkurve, die über die PHP -Sprache spaltet.

Durch die Analyse der Ideen und Implementierungsdetails der Algorithmus können wir den Prozess der Aufteilung der roten Umschlagbetrag klar verstehen.

Wenn Sie Funktionen im Zusammenhang mit WeChat Red -Umschlägen entwickeln, hoffe ich, dass Sie aus den Beispielen für Algorithmus in diesem Artikel lernen können.