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. 計算隨機數
- 7. 隨機數生成/哪種算法?
- 8. TI-84 +隨機數生成算法
- 9. 數組隨機乘法運算
- 10. 找到一個隨機數的算法
- 11. 獨特的隨機數算法
- 12. 隨機數發生器和圖算法
- 13. 隨機數發生器算法
- 14. 在Xorshift隨機數生成算法
- 15. 隨機優化算法
- 16. 隨機聚類算法
- 17. 隨機Prim的算法
- 18. 隨機決策算法
- 19. 隨機佈局算法
- 20. 適應性隨機算法
- 21. 隨機繪圖算法
- 22. 約隨機選算法
- 23. 算法生成隨機花的想法
- 24. 生成隨機數:計算隨機生成的x次數
- 25. 隨機森林和隨機樹算法之間的區別
- 26. 具有隨機性的Riffle隨機算法
- 27. 如何使用隨機遊走算法計算介數?
- 28. PHP數學隨機數計算
- 29. 播放隨機歌曲算法
- 30. 檢測隨機文件名的算法?
爲他們提供更多的「門票」,就像在門口發放門票的抽獎活動一樣,但是每張門票都有相同的賠率。 (對於在門口送出的每張門票,另一個匹配的門票存根被添加到可從中選擇的一堆。) – 2012-07-23 07:14:20