首頁 >後端開發 >Python教學 >我們如何實現帶有替換和不帶替換的加權隨機選擇?

我們如何實現帶有替換和不帶替換的加權隨機選擇?

Susan Sarandon
Susan Sarandon原創
2024-10-24 16:00:03314瀏覽

How Can We Implement Weighted Random Selection with and Without Replacement?

帶替換和不帶替換的加權隨機選擇:綜合指南

從具有特定權重的列表中選擇元素在各種情況下都是一種有價值的技術應用程式。雖然不帶替換的加權選擇具有完善的演算法,但選擇帶有替換的元素會帶來不同的挑戰。

有替換的加權選擇的一種有效方法是 Alias 方法。透過將權重歸一化為 1.0 並找到大於選項數量的最小 2 次方,可以為每個變數建立分區。此方法迭代地以最小和最大權重變數填入分區,並根據需要分配原始分區的剩餘權重。

在運行時,產生一個統一的隨機數,其二進位表示通過對數進行移位分區的數量。所選分區的索引由移位後的數字決定。如果分區被分割,則移位隨機數的小數部分決定分配給該分區的兩個變數之間的選擇。

別名方法以其高效而聞名,依賴簡單的代數運算和恆定時間索引。即使需要選擇清單的很大一部分,它也可以實現高效選擇,這使其成為需要帶有替換的加權隨機選擇的各種場景的合適選擇。

以上是我們如何實現帶有替換和不帶替換的加權隨機選擇?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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