根据人数随机分配百分比的问题
需求是这样的,根据可变参数 $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;
回复讨论(解决方案)
这样可能好点
$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);
忘记上来结贴了,感谢版主大大的回复,问题已经解决了,贴出来与大家分享:
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); }

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

La possibilité de générer des nombres aléatoires ou des chaînes alphanumériques s'avère utile dans de nombreuses situations. Vous pouvez l'utiliser pour faire apparaître des ennemis ou de la nourriture à différents endroits du jeu. Vous pouvez également l'utiliser pour suggérer des mots de passe aléatoires aux utilisateurs ou créer des noms de fichiers pour enregistrer des fichiers. J'ai écrit un tutoriel sur la façon de générer des chaînes alphanumériques aléatoires en PHP. J'ai dit au début de cet article que peu d'événements sont véritablement aléatoires, et il en va de même pour la génération de nombres aléatoires ou de chaînes. Dans ce tutoriel, je vais vous montrer comment générer une chaîne alphanumérique pseudo-aléatoire en JavaScript. Générer des nombres aléatoires en JavaScript Commençons par générer des nombres aléatoires. La première méthode qui me vient à l’esprit est Math.random(), qui renvoie un float

La différence entre aléatoire et pseudo-aléatoire réside dans la prévisibilité, la reproductibilité, l’uniformité et la sécurité. Introduction détaillée : 1. Prévisibilité. Les nombres aléatoires ne peuvent pas être prédits même si les résultats passés sont connus, les résultats futurs ne peuvent pas être prédits avec précision car ils sont générés par des algorithmes. seed, vous pouvez régénérer la même séquence ou séquence ; 2. Reproductibilité, les nombres aléatoires ne sont pas reproductibles et les résultats générés à chaque fois sont indépendants, tandis que les nombres pseudo-aléatoires sont reproductibles Oui, utilisez simplement le même algorithme et les mêmes graines, etc.

Les fractions et les pourcentages sont deux concepts mathématiques de base utilisés dans divers domaines tels que la finance, l'analyse de données et les statistiques. Convertir une fraction en pourcentage est une opération simple mais nécessaire qui nous permet de représenter les valeurs fractionnaires de manière plus compréhensible. Python, l'un des langages de programmation les plus populaires, propose plusieurs méthodes pour convertir des fractions en pourcentages, et la compréhension de ces méthodes est cruciale pour quiconque travaille avec des données en Python. Cet article examine en profondeur la conversion de fractions en pourcentages en Python. Nous explorerons différentes façons de procéder et fournirons des exemples pour vous aider à comprendre chaque méthode. Que vous soyez débutant ou programmeur Python expérimenté, cet article vous donne les clés pour réaliser cela en Python

Dans cet article, nous apprendrons comment obtenir la fréquence des mots en pourcentage en Python. Supposons que nous ayons obtenu une liste d’entrées de chaîne. Maintenant, nous trouverons le pourcentage de chaque mot dans la liste donnée de chaînes d’entrée. La méthode utilisée par la formule (OccurrenceofXword/Totalwords)*100 consiste à utiliser les fonctions sum(), Counter(), join() et split() pour utiliser les fonctions join(), split() et count() à utiliser la fonction countOf() du module opérateur. Méthode 1 : utilisez les fonctions sum(), Counter(), join() et split() join() est Py

Python est un langage de programmation populaire largement utilisé dans l'analyse de données, l'apprentissage automatique, le développement Web et d'autres domaines. En Python, le module random fournit une fonction random.randint() pour générer des entiers aléatoires. Cet article explique comment utiliser la fonction random.randint() pour générer des entiers aléatoires et fournit quelques exemples de code. Tout d’abord, nous devons importer le module random : importrandom Ensuite, nous pouvons appeler rando

Lors d'une réunion Tencent, les utilisateurs peuvent allumer leurs propres caméras pour le partage, mais la caméra a un nombre maximum de personnes. Alors, quelle est la limite supérieure du nombre de personnes sur la caméra Ci-dessous, l'éditeur vous présentera la limite supérieure ? limite du nombre de personnes dans la caméra de réunion Tencent Découvrons ensemble. Tutoriel d'utilisation des réunions Tencent : Quel est le nombre maximum de personnes pour la caméra de réunion Tencent Réponse : Le maximum est de 60 personnes et le minimum est de 30 personnes. 1. Introduction à la limite supérieure du nombre de personnes dans la caméra : 1. L'ordinateur peut accueillir jusqu'à 60 personnes pouvant allumer la caméra, et un écran peut accueillir jusqu'à 9 ou 25 personnes en même temps. 2. Le téléphone mobile peut prendre en charge jusqu'à 30 personnes allumant l'appareil photo, et un écran peut accueillir jusqu'à 4 personnes en même temps. 2. Méthodes pour augmenter la limite supérieure du nombre de vidéos : 1. S'il y a trop de participants, jusqu'à 30 personnes peuvent allumer la caméra en même temps. 2. Nous pouvons utiliser l'interface de l'avatar du compte pour

Windows 11 de Microsoft continue de croître, comme le montrent les dernières données de février 2022 d'un rapport AdDuplex. Le système d’exploitation approche rapidement du chiffre de 20 %, ce qui signifie qu’environ un PC sur cinq utilise désormais Windows 11. La version publique de Windows 11, Windows 1121H2, est désormais à 19,3 %. Pendant ce temps, le taux d’initiés pilotant diverses versions d’aperçu est désormais de 0,3 %. Cela porte la part totale de Windows 11 à 19,6 %, et d'ici mars, cette part en pourcentage pourrait dépasser 20 %. Windows 11 et plusieurs Wind

Résolution des erreurs PHP : essayez d'attribuer des résultats non variables au point de connexion. Dans le développement PHP, nous rencontrons souvent divers messages d'erreur. L'un d'eux est "TryingtoAssignNon-VariabletoConcatenate" (TryingtoAssignNon-VariabletoConcatenate). Ce message d'erreur indique que dans l'opérateur de point de jointure (.), nous essayons de joindre les résultats d'une non-variable. Pour résoudre ce problème, nous devons d’abord comprendre le rôle et l’utilisation de l’opérateur de point de jointure.
