PHP 中的加權隨機數產生
本問題探討了在將不同機率分配給特定範圍時產生隨機數的挑戰。在 PHP 中,mt_rand() 函數提供了一種產生隨機整數的方法,但它不允許加權結果。
要克服此限制,您可以使用加權機率的概念。這種方法涉及建立一個關聯數組,其中鍵代表所需的結果,值代表它們各自的權重。所有結果的總權重總和應達到可能的最大權重。
要根據提供的權重產生隨機結果,您需要使用 mt_rand 計算 1 到總權重之間的隨機值() 功能。然後,迭代加權數組並從隨機值中減去每個結果的權重。選擇隨機值變成負數或零的第一個結果作為加權隨機結果。
提供的 PHP 函數 getRandomWeightedElement() 實作了這種方法,讓您可以指定加權結果的關聯數組並傳回對應的結果隨機金鑰。請注意,權重應該是整數,非整數權重可能需要對此函數進行自訂調整。
以上是如何在 PHP 中產生加權隨機數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!