In diesem Artikel wird der spezifische JS-Code zur Implementierung der angegebenen roten Umschlagreihenfolge und des angegebenen Betrags zu Ihrer Information veröffentlicht. Der spezifische Inhalt ist wie folgt Vorwort
EffektanzeigeProblem mit leeren PaketenRed-Envelope-Algorithmus/* Parameter: Float, Int, Int, Float Param1: Gesamtmenge der roten Umschläge Param2: Anzahl der roten Umschläge Param3: Geben Sie spezielle rote Umschläge an Param4: Geben Sie die Menge spezieller roter Umschläge an*/ let getPrize = Funktion(Gesamt, Zahl, Index, Volumen){ sei Zulage = Gesamt - Volumen; sei arr = []; sei i = 0; während(i < Zahl - 2){ //Geben Sie [0,01, Toleranz-(i*0,01)) an. let temp = (Math.random()*(Zulässigkeit - (Zahl - 1 - i) * 0,01) + 0,01).toFixed(2); // wenn (temp < 0) console.log(`temp:${temp}`); Temp = Temp <= 0? 0,01: Temp; arr.push(parseFloat(temp)); Zulage = parseFloat((Zulage - temp).toFixed(2)); ich++; // console.log(`arr:${arr}, i:${i}`); // Wenn die Verteilung kleiner als 0 ist, nutze die Stärke aus und teile sie gleichmäßig auf, wenn (Zuschuss <= 0) { // console.log(`allowance:${allowance}`); sei w = arr.filter((val,index)=>{ // console.log(`val:${val}`); wenn(Wert > 0,01){ arr[index] = parseFloat((arr[index] - 0,01).toFixed(2)); Rückgabewert; } }); wenn(w.Länge == 0){ Zulage = 0; }anders{ Zulage = 0,01; } } } // Der letzte wird in arr.push(parseFloat(allowance.toFixed(2))); eingefügt. lass Ergebnis = arr; gibt Ergebnis.Slice(0, Index).concat(parseFloat(Volumen), Ergebnis.Slice(Index)) zurück; } Testbeispiele // Testbeispiel für(lass m = 0; m < 10000; m++){ sei total = (Math.random()*100 + 0,01).toFixed(2); lass Zahl = Math.floor(Math.random()*20 +2); während(Gesamt / Zahl < 0,01){ Zahl = Math.floor(Math.random()*20 +2); } let index = Math.floor(Math.random()*(Zahl - 1)); lass Volumen = (Math.random()*(Gesamt - 0,01*(Zahl-1))+0,01).toFixed(2); während(Volumen >= Gesamt || Volumen + 0,01*(Zahl-1) > Gesamt){ // konsole.log(`xx:${volume}`); Volumen = (Math.random()*(Gesamt - 0,01*(Zahl-1))+0,01).toFixed(2); Volumen = Volumen <= 0? 0,01: Volumen; } let test = getPrize(Gesamt, Zahl, Index, Volumen); // konsole.log(test); Lassen Sie Summe = test.reduce((total,val)=>total+=parseFloat(val)); Summe = Summe.toFixed(2); wenn(Summe !== Gesamt) { console.log(`Volumen: ${Volumen}, Gesamt: ${Total}, Zahl: ${Zahl}`); Konsole.log(`Summe: ${Summe}`); Konsole.log(Test); } test.map((Wert,Index)=>{ wenn(Wert <= 0 && Index !== Testlänge - 1){ console.log(`Volumen: ${Volumen}, Gesamt: ${Total}, Zahl: ${Zahl}`); Konsole.log(`Summe: ${Summe}`); Konsole.log(Test); } }); } Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Eine kurze Diskussion über die Effizienz der MySQL-Unterabfrage-Vereinigung und in
>>: Beispiel für die Verwendung des Supervisors zum Verwalten von Nginx+Tomcat-Containern
Installieren Sie zunächst PHP5 ganz einfach yum i...
Einführung der Server-U-Software Server-U ist ein...
Wir haben viele Server, die häufig von externen N...
HTML5 fügt ein natives Platzhalterattribut für di...
Wie in der folgenden Abbildung dargestellt: Wenn ...
Einfaches Beispiel für die Verschönerung von HTML...
Ich möchte Ihnen von einem aktuellen Fall erzähle...
MySQL-Gruppensortierung, um die obersten N zu fin...
Inhaltsverzeichnis Mischen Mixin-Hinweis (doppelt...
Inhaltsverzeichnis Grundlegende allgemeine MySQL-...
Dieser Artikel stellt die Installation und Verwen...
** Detaillierte grafische Anweisungen zur Install...
Nachdem das Formular übermittelt wurde, wird die z...
Inhaltsverzeichnis Vorwort 1. MySQL ermöglicht SS...
Inhaltsverzeichnis Anforderungsbeschreibung: Anfo...