Inhaltsverzeichnis
回复讨论(解决方案)
Heim Backend-Entwicklung PHP-Tutorial 根据人数随机分配百分比的问题

根据人数随机分配百分比的问题

Jun 23, 2016 pm 01:50 PM
Anzahl der Personen 分配 百分比 随机

需求是这样的,根据可变参数 $people 来给每个人随机分配百分比,条件是人数一定会控制在 3 
写了个简单的分配,但会出现最后一个人会得到很多的情况,并且由于分配区间实际上是 1 - 平均数 之间的百分比,不是严格意义上的 “随机平均分配”,求各位大大给个思路,抛砖引玉,不甚感谢。

$people = 3;     //人数        $percent = 100;   //百分比        $average = floor($percent/$people);        $rand_array = array();        $count = 0;        for ($i=0; $i < $n; $i++) {            if($i == ($n - 1)){                $rand_array[$i] = 100 - $count;            }else{                $rand_array[$i] = rand(1,$average);                $count = $count + $rand_array[$i];             }        }        return $rand_array;
Nach dem Login kopieren


回复讨论(解决方案)

这样可能好点

$people = 3;    //人数$percent = 100; //百分比$res = array_fill(0, 3, floor($percent/$people)); //平均分配$d = 5; //容差foreach($res as &$v) $v += rand(-$d, $d);$res[rand(0, $people-1)] += $percent - array_sum($res); //随机将残差补入print_r($res);
Nach dem Login kopieren

忘记上来结贴了,感谢版主大大的回复,问题已经解决了,贴出来与大家分享:

public static function rand_bouns($person){		//百分比		$percent = 100;		$now_person = $person;		$bouns = array();		for($i=0;$i<=$person-1;$i++){			$bouns[$i] = self::get_bouns($now_person,$percent);			$percent = $percent - $bouns[$i];			$now_person = $now_person - 1;			$now_bouns += $bouns[$i];		}		return $bouns;			}public static function get_bouns($person,$percent){		if($person==1) return $percent;		$max = 30;		if($percent < $max)  $max = $percent;		$min = $percent-$max*($person-1) <= 0 ? 1 : $percent-$max*($person-1);		$max = $max-($person) <= 0 ? 1 : $max-($person);		return rand($min,$max);	}
Nach dem Login kopieren

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Generieren Sie Zufallszahlen und Zeichenfolgen in JavaScript Generieren Sie Zufallszahlen und Zeichenfolgen in JavaScript Sep 02, 2023 am 08:57 AM

Die Möglichkeit, Zufallszahlen oder alphanumerische Zeichenfolgen zu generieren, ist in vielen Situationen praktisch. Sie können damit an verschiedenen Orten im Spiel Feinde oder Nahrung hervorbringen. Sie können es auch verwenden, um Benutzern zufällige Passwörter vorzuschlagen oder Dateinamen zum Speichern von Dateien zu erstellen. Ich habe ein Tutorial darüber geschrieben, wie man in PHP zufällige alphanumerische Zeichenfolgen generiert. Ich habe am Anfang dieses Beitrags gesagt, dass nur wenige Ereignisse wirklich zufällig sind, und das Gleiche gilt für die Zufallszahlen- oder String-Generierung. In diesem Tutorial zeige ich Ihnen, wie Sie in JavaScript eine pseudozufällige alphanumerische Zeichenfolge generieren. Generieren von Zufallszahlen in JavaScript Beginnen wir mit der Generierung von Zufallszahlen. Die erste Methode, die mir in den Sinn kommt, ist Math.random(), die einen Float zurückgibt

Der Unterschied zwischen zufällig und pseudozufällig Der Unterschied zwischen zufällig und pseudozufällig Oct 10, 2023 am 09:27 AM

Der Unterschied zwischen Zufall und Pseudozufalls liegt in der Vorhersagbarkeit, Reproduzierbarkeit, Einheitlichkeit und Sicherheit. Detaillierte Einführung: 1. Zufallszahlen können nicht vorhergesagt werden, solange Sie den Algorithmus kennen Seed, Sie können dieselbe Sequenz oder Sequenz neu generieren. 2. Reproduzierbarkeit, Zufallszahlen sind nicht reproduzierbar und die generierten Ergebnisse sind jedes Mal unabhängig, während Pseudozufallszahlen reproduzierbar sind. Ja, verwenden Sie einfach denselben Algorithmus und dieselben Seeds usw.

Wie konvertiert man in Python einen Bruch in einen Prozentsatz? Wie konvertiert man in Python einen Bruch in einen Prozentsatz? Aug 25, 2023 pm 01:25 PM

Brüche und Prozentsätze sind zwei grundlegende mathematische Konzepte, die in verschiedenen Bereichen wie Finanzen, Datenanalyse und Statistik verwendet werden. Das Umwandeln eines Bruchs in einen Prozentsatz ist eine einfache, aber notwendige Operation, die es uns ermöglicht, Bruchwerte verständlicher darzustellen. Python, eine der beliebtesten Programmiersprachen, bietet mehrere Methoden zum Umwandeln von Brüchen in Prozente. Das Verständnis dieser Methoden ist für jeden, der in Python mit Daten arbeitet, von entscheidender Bedeutung. Dieser Artikel befasst sich ausführlich mit der Umwandlung von Brüchen in Prozentsätze in Python. Wir werden verschiedene Möglichkeiten hierfür untersuchen und Beispiele bereitstellen, um Ihnen das Verständnis der einzelnen Methoden zu erleichtern. Egal, ob Sie ein Anfänger oder ein erfahrener Python-Programmierer sind, dieser Artikel gibt Ihnen den Schlüssel dazu, dies in Python zu tun

Python-Programm zum Ermitteln des Prozentsatzes der Worthäufigkeit Python-Programm zum Ermitteln des Prozentsatzes der Worthäufigkeit Sep 08, 2023 pm 06:29 PM

In diesem Artikel erfahren Sie, wie Sie die Worthäufigkeit in Python als Prozentsatz ermitteln. Angenommen, wir haben eine Liste von String-Eingaben erhalten. Jetzt ermitteln wir den Prozentsatz jedes Wortes in der angegebenen Liste der Eingabezeichenfolgen. Die Formel (OccurrenceofXword/Totalwords)*100 verwendet die Funktionen „sum()“, „Counter()“, „join()“ und „split()“. Verwenden Sie die Funktionen „join()“, „split()“ und „count()“. das Betreibermodul. Methode 1: Verwenden Sie die Funktionen sum(), Counter(), join() und split(). join() ist Py

So verwenden Sie die Funktion random.randint() zum Generieren zufälliger Ganzzahlen in Python 2.x So verwenden Sie die Funktion random.randint() zum Generieren zufälliger Ganzzahlen in Python 2.x Jul 31, 2023 pm 12:13 PM

Python ist eine beliebte Programmiersprache, die in der Datenanalyse, beim maschinellen Lernen, in der Webentwicklung und in anderen Bereichen weit verbreitet ist. In Python stellt das Zufallsmodul eine Funktion random.randint() zum Generieren zufälliger Ganzzahlen bereit. In diesem Artikel wird erläutert, wie Sie mit der Funktion random.randint() zufällige Ganzzahlen generieren, und es werden einige Codebeispiele bereitgestellt. Zuerst müssen wir das Zufallsmodul importieren: importrandom Als nächstes können wir rando aufrufen

Wie viele Personen dürfen sich in der Konferenzkamera von Tencent aufhalten? Wie viele Personen dürfen sich in der Konferenzkamera von Tencent aufhalten? Feb 28, 2024 pm 05:55 PM

In einem Tencent-Meeting können Benutzer ihre eigenen Kameras zum Teilen einschalten, aber die Kamera hat eine maximale Anzahl von Personen. Was ist also die Obergrenze für die Anzahl der Personen auf der Kamera? Begrenzung der Personenzahl in der Tencent-Meeting-Bar. Finden wir es gemeinsam heraus. Tutorial zur Nutzung von Tencent-Meetings: Was ist die maximale Personenzahl für die Tencent-Meeting-Kamera? Antwort: Das Maximum beträgt 60 Personen und das Minimum 30 Personen. 1. Einführung in die Obergrenze der Personenzahl in der Kamera: 1. Der Computer bietet Platz für bis zu 60 Personen, die die Kamera einschalten können, und ein Bildschirm bietet Platz für bis zu 9 oder 25 Personen gleichzeitig. 2. Das Mobiltelefon kann bis zu 30 Personen unterstützen, die die Kamera einschalten, und ein Bildschirm bietet Platz für bis zu 4 Personen gleichzeitig. 2. Methoden zur Erhöhung der Obergrenze der Videoanzahl: 1. Bei zu vielen Teilnehmern können bis zu 30 Personen gleichzeitig die Kamera einschalten. 2. Wir können die Konto-Avatar-Schnittstelle verwenden, um

Mittlerweile ist auf jedem fünften PC Windows 11 installiert, doch die Akzeptanz scheint sich zu verlangsamen Mittlerweile ist auf jedem fünften PC Windows 11 installiert, doch die Akzeptanz scheint sich zu verlangsamen Apr 30, 2023 pm 05:10 PM

Microsofts Windows 11 wächst weiter, wie die neuesten Daten eines AdDuplex-Berichts vom Februar 2022 zeigen. Das Betriebssystem nähert sich schnell der 20-Prozent-Marke, was bedeutet, dass mittlerweile etwa jeder fünfte PC mit Windows 11 läuft. Die öffentliche Version von Windows 11, Windows 1121H2, liegt jetzt bei 19,3 %. Mittlerweile liegt die Quote der Insider, die verschiedene Vorschauversionen testen, bei 0,3 %. Damit beträgt der Gesamtanteil von Windows 11 19,6 %, und bis März könnte dieser prozentuale Anteil 20 % überschreiten. Windows 11 und viele Wind

PHP-Fehler beheben: Versuchen Sie, dem Verbindungspunkt nicht variable Ergebnisse zuzuweisen PHP-Fehler beheben: Versuchen Sie, dem Verbindungspunkt nicht variable Ergebnisse zuzuweisen Aug 18, 2023 pm 01:13 PM

Beheben von PHP-Fehlern: Versuchen Sie, dem Verbindungspunkt nicht variable Ergebnisse zuzuweisen. Bei der PHP-Entwicklung stoßen wir häufig auf verschiedene Fehlermeldungen. Eine davon ist „TryingtoAssignNon-VariabletoConcatenate“ (TryingtoAssignNon-VariabletoConcatenate). Diese Fehlermeldung weist darauf hin, dass wir im Verknüpfungspunktoperator (.) versuchen, die Ergebnisse einer Nichtvariablen zu verbinden. Um dieses Problem zu lösen, müssen wir zunächst die Rolle und Verwendung des Verbindungspunktoperators verstehen.

See all articles