根据人数随机分配百分比的问题
需求是这样的,根据可变参数 $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); }

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

產生隨機數或字母數字字串的能力在許多情況下都會派上用場。您可以使用它在遊戲中的不同位置生成敵人或食物。您也可以使用它向用戶建議隨機密碼或建立文件名來保存文件。我寫了一篇關於如何在PHP中產生隨機字母數字字串的教學。我在這篇文章的開頭說,幾乎沒有事件是真正隨機的,同樣的情況也適用於隨機數或字串生成。在本教程中,我將向您展示如何在JavaScript中產生偽隨機字母數字字串。在JavaScript中產生隨機數字讓我們從產生隨機數開始。我想到的第一個方法是Math.random(),它回傳一個浮

隨機和偽隨機的差異在可預測性、重現性、均勻性和安全性等。詳細介紹:1、可預測性,隨機數是無法被預測的,即使知道了過去的結果也不能準確地預測未來的結果,而偽隨機數是可以被預測的,因為它們是透過演算法產生的,只要知道了演算法和種子,就可以重現產生相同的數列或序列;2、重現性,隨機數是不可重現的,每次產生的結果都是獨立的,而偽隨機數是可重現的,只要使用相同的演算法和種子等等。

分數和百分比是在金融、數據分析和統計等各個領域中使用的兩個基本數學概念。將分數轉換為百分比是一種簡單但必要的操作,它使我們能夠以更易於理解的方式表示分數值。 Python是最受歡迎的程式語言之一,提供了幾種將分數轉換為百分比的方法,理解這些方法對於在Python中處理資料的人來說至關重要。本文深入探討了在Python中將分數轉換為百分比的過程。我們將探索不同的方法來執行此操作,並提供範例以幫助您理解每種方法。無論您是初學者還是經驗豐富的Python程式設計師,本文都為您提供了在Python中執行此關鍵操作

在本文中,我們將學習如何在Python中以百分比形式取得詞頻。假設我們已經取得了一個字串輸入清單。現在,我們將找到給定輸入字串清單中每個單字的百分比。公式(OccurrenceofXword/Totalwords)*100使用的方法使用sum()、Counter()、join()和split()函數使用join()、split()和count()函數使用operator模組的countOf()函數。方法一:使用sum()、Counter()、join()、split()函數join()是Py

在騰訊會議中用戶可以打開自己的攝像頭進行共享,不過攝像頭是有人數上限的,那麼攝像頭人數上限是多少人呢?下面小編就為大家帶來了騰訊會議攝像頭上限人數介紹,一起來了解一下吧。騰訊會議使用教學騰訊會議攝影機上限多少人答:最高60人,最低30人。一、攝影機人數上限介紹:1、電腦端最多容納支援60個人開啟鏡頭,一個螢幕最多同時容納9或25人。 2.手機端最多容納支援30個人開啟鏡頭,一個螢幕最多同時容納4人。二、影片數量上限提升方法:1.如果參與者過多,最多30個人同時開攝影機。 2、我們可以在帳號頭像界

Python是一種流行的程式語言,廣泛應用於資料分析、機器學習、網頁開發等領域。在Python中,random模組提供了一個random.randint()函數,用於產生隨機整數。本文將介紹如何使用random.randint()函數來產生隨機整數,並提供一些程式碼範例。首先,我們需要導入random模組:importrandom接下來,就可以呼叫rando

Python是一種靈活而有效的程式語言,提供了廣泛的底層功能和函式庫來改進複雜的編碼任務。其中一項任務是執行加權不規則決策,這是一種可衡量的策略,其中每件事都有預先定義的被挑選的可能性。與簡單隨機選擇(其中每個項目被選擇的機會相同)不同,加權隨機選擇允許我們指定每個項目被選擇的可能性,該可能性可能會有所不同。本文旨在全面了解如何在Python中獲得加權隨機選擇。語法Python中促進加權隨機選擇的主要方法是random.choices()。這是它的基本語法:random.choices(popula

按1可以看每個cpu的使用情況第一行當前時間運行時間當前登陸用戶負載平衡(1分鐘、5分鐘、10分鐘)loadaverage資料每5秒檢查一次活躍進程數,計算出的值。若除以邏輯CPU數量後超過5,表示系統超負荷。第二行總共248個行程1個正在執行247個休眠0個停止0個殭屍行程第三行us(userspace):使用者空間佔用cpu的百分比sy(sysctl):核心空間佔用cpu的百分比ni()—改變過優先權的程序佔用CPU的百分比id(idolt):空閒CPU百分比wa(wait):IO等待佔用CP
