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
Beim Erstellen eines Formulars in einem aktuellen...
Heute wurde ich gefragt, wozu das Zoom-Attribut i...
MySQL InnoDB-Überwachung (Systemebene, Datenbanke...
Code kopieren Der Code lautet wie folgt: <styl...
1. Systeminstallationspaket yum -y install make g...
Heute werden wir uns ansehen, warum es zu Master-...
Wir alle wissen, dass Jmeter eine native Ergebnis...
Wenn der Programmdienst mit k8s bereitgestellt wi...
Vor kurzem habe ich ein Projekt, bei dem ich mit i...
Problem: vue-cil3 wird mit Warnungen ausgeführt, ...
Dieser Artikel stellt die automatische Build-Bere...
Inhaltsverzeichnis 1. Der folgende Code ist eine ...
1. Einleitung Ich habe vor Kurzem an einem Projek...
Inhaltsverzeichnis DOM Knoten Elementknoten: Text...
Inhaltsverzeichnis Vorwort 1. MySQL-Hauptspeicher...