目錄
回复讨论(解决方案)
首頁 後端開發 php教程 根据人数随机分配百分比的问题

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

Jun 23, 2016 pm 01:50 PM
人數 分配 百分比 隨機

需求是这样的,根据可变参数 $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);	}
登入後複製

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1325
25
PHP教程
1272
29
C# 教程
1252
24
JavaScript中產生隨機數字和字串 JavaScript中產生隨機數字和字串 Sep 02, 2023 am 08:57 AM

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

隨機和偽隨機的差別 隨機和偽隨機的差別 Oct 10, 2023 am 09:27 AM

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

如何在Python中將分數轉換為百分比? 如何在Python中將分數轉換為百分比? Aug 25, 2023 pm 01:25 PM

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

Python程式取得單字頻率的百分比 Python程式取得單字頻率的百分比 Sep 08, 2023 pm 06:29 PM

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

騰訊會議攝影機上限多少人 騰訊會議攝影機上限多少人 Feb 28, 2024 pm 05:55 PM

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

Python 2.x 中如何使用random.randint()函數產生隨機整數 Python 2.x 中如何使用random.randint()函數產生隨機整數 Jul 31, 2023 pm 12:13 PM

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

如何在Python中實現加權隨機選擇? 如何在Python中實現加權隨機選擇? Sep 11, 2023 pm 09:45 PM

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

linux top指令詳解 linux top指令詳解 Feb 20, 2024 am 09:20 AM

按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

See all articles