Q
隨機數算法
0
A
回答
1
爲什麼這不是「合法的」。如果你將你的機會數量基於若干分數,則根據他的分數將該人員添加到抽獎中X次。那個人的機會增加了。
我會以這種方式解決它。
2
僞算法:
winnerTicket <- a random number between zero and sum ticket count - 1
currentTicket <- 0
For each participant in participants ordered by id
If winnerTicket - currentTicket > participant.ticketCount
currentTicket += participant.ticketCount
Else
return participant
+0
參與者的順序和排序在此處是否重要? – 2015-11-22 16:40:56
1
你有一個映射:participant => number of chances
。在許多編程語言可以聲明映射或字典是這樣的:
{"player1": 2, "player2": 5, ... many more like these}
這樣你就可以遍歷這樣的:
accumulatedMap = {} #an empty map
total = 0
for each pair of key:count in the mapping:
total = total + count
accumulatedMap[key] = total
#now, get random and calculate
element = random between 1 and total, inclusive.
for each pair of key:accumulated in the mapping:
if element <= accumulated:
return key
#at this point, in the worst case the last key was returned.
該代碼僅僅是一個例子。請記住,迭代時映射並不總是保持插入順序。
相關問題
- 1. 算法分析:隨機數
- 2. 隨機數的算法
- 3. 隨機性算法
- 4. 隨機組算法
- 5. 計算隨機數
- 6. TI-84 +隨機數生成算法
- 7. 找到一個隨機數的算法
- 8. 在Xorshift隨機數生成算法
- 9. 隨機數發生器算法
- 10. 隨機數發生器和圖算法
- 11. 數組隨機乘法運算
- 12. 隨機決策算法
- 13. 隨機Prim的算法
- 14. 約隨機選算法
- 15. 隨機佈局算法
- 16. 隨機聚類算法
- 17. 隨機繪圖算法
- 18. 隨機森林和隨機樹算法之間的區別
- 19. PHP數學隨機數計算
- 20. 特殊隨機算法,對PHP
- 21. 穩定的隨機顏色算法
- 22. 隨機選擇學習卡的算法
- 23. 檢測隨機文件名的算法?
- 24. 隨機算法概率最大化
- 25. 基本隨機算法復發
- 26. 快速隨機選擇算法
- 27. 隨機生成方程的算法
- 28. Python和隨機森林算法
- 29. 如何使隨機算法更高效
- 30. 隨機選擇對象的算法
爲他們提供更多的「門票」,就像在門口發放門票的抽獎活動一樣,但是每張門票都有相同的賠率。 (對於在門口送出的每張門票,另一個匹配的門票存根被添加到可從中選擇的一堆。) – 2012-07-23 07:14:20