中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

PHP中怎么根據權重生成隨機數

PHP
小億
111
2024-05-27 12:48:10
欄目: 編程語言

可以使用PHP的mt_rand()函數結合權重來生成隨機數。具體步驟如下:

  1. 首先定義一個包含各個權重的數組,如$weights = array(1, 2, 3, 4)。

  2. 計算權重數組的總和,如$totalWeight = array_sum($weights)。

  3. 生成一個隨機數$rndNum,范圍為1到$totalWeight之間,如$rndNum = mt_rand(1, $totalWeight)。

  4. 遍歷權重數組,累加每個權重值,并判斷$rndNum是否小于等于累加值,如果是,則返回當前索引值作為隨機數,如下所示:

function getRandomNumberByWeight($weights) {
    $totalWeight = array_sum($weights);
    $rndNum = mt_rand(1, $totalWeight);
    
    $cumulativeWeight = 0;
    foreach($weights as $key => $weight) {
        $cumulativeWeight += $weight;
        if($rndNum <= $cumulativeWeight) {
            return $key;
        }
    }
}
  1. 調用函數getRandomNumberByWeight($weights),即可根據權重生成隨機數。

例如,如果$weights = array(1, 2, 3, 4),則根據權重生成的隨機數可能為0、1、2或3,其概率分別為1/10、2/10、3/10、4/10。

0
恩施市| 汉阴县| 彰武县| 凤冈县| 肥西县| 微山县| 汉川市| 壤塘县| 庆云县| 东台市| 泊头市| 广西| 九龙县| 定安县| 富源县| 拉孜县| 西吉县| 黄石市| 南投市| 白朗县| 浦江县| 峨眉山市| 剑阁县| 城市| 宝山区| 太湖县| 海城市| 阿拉善左旗| 江西省| 福清市| 蛟河市| 高阳县| 平顶山市| 扎赉特旗| 永和县| 景泰县| 墨脱县| 岳西县| 清徐县| 独山县| 泰顺县|