首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 機率模擬實作:mt_rand() 產生加權隨機事件

     編輯:PHP 綜合知識

核心概念

利用 mt_rand(0, 100) 產生 0–100 的均勻隨機整數,透過區間劃分實現機率分布:

  • 0–19 → 事件 A(20%)
  • 20–49 → 事件 B(30%)
  • 50–100 → 事件 C(50%)

完整模擬程式碼

";   // 約 19,999
echo "B: $b
"; // 約 29,999 echo "C: $c
"; // 約 50,000 ?>

執行結果範例

A: 19589
B: 29795
C: 50615

統計值極接近理論機率(20% / 30% / 50%),大數法則驗證無誤。

進階:通用加權隨機函式

/**
 * 依權重陣列回傳對應鍵名
 * @param array $weights ['A' => 20, 'B' => 30, 'C' => 50]
 * @return string
 */
function weighted_random(array $weights) {
    $total = array_sum($weights);
    $rand = mt_rand(1, $total);
    foreach ($weights as $key => $weight) {
        $rand -= $weight;
        if ($rand <= 0) return $key;
    }
}

// 使用範例
$event = weighted_random(['A' => 20, 'B' => 30, 'C' => 50]);
echo "觸發事件:$event";
?>

程式碼美化工具推薦

延伸閱讀專題

  • 《PHP 數學運算技巧總結》
  • 《PHP 程式設計演算法總結》
  • 《PHP 常用遍歷演算法與技巧總結》
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved