是否可以從O(M)時間的大小爲N的數組中選擇M個唯一的均勻隨機元素? O(N)解決方案顯然微不足道,例如, Fisher-Yates大小爲N的數組,並截斷到前M個元素。從數組中挑選隨機數
1
A
回答
1
爲[n-m,n]中的每個x選擇[0,x)中的一個隨機數。對於每個隨機數,將該索引處的項目與上限索引處的項目交換。例如:
import random
def random_elements(items, count):
length = len(items)
for i in range(count):
index = random.randrange(0, length - i)
yield items[index]
items[length - i - 1], items[index] = items[index], items[length - i - 1]
相關問題
- 1. 從數組中挑選隨機顏色
- 2. 從數組中挑選隨機NSNumber?
- 3. Math.Random()挑選隨機數組
- 4. 從MySQL中的一組數字中挑選一個隨機數
- 5. 從數組中隨機挑選和顯示數據
- 6. 動作2:從數組中挑選3個隨機數字
- 7. 從一組數字中挑選一個隨機數
- 8. Javascript - 如何從數組中隨機挑選元素?
- 9. 如何從數組中挑選隨機聲音? (JS)
- 10. 使用Javascript從數組中挑選隨機形狀
- 11. jQuery從字符串數組中挑選一個隨機值
- 12. 從異常數組中挑選一個隨機元素
- 13. CSS從數組中挑選一個隨機顏色
- 14. Android:從數組中隨機挑選字符串
- 15. 從數組中挑選隨機元素並將其刪除
- 16. 從數組中挑選隨機字符串
- 17. 作爲迴應從JS數組中挑選的隨機句子
- 18. 創建程序從數組中挑選出隨機字符串
- 19. 從數組中挑選隨機元素,但唯一
- 20. 從數組中挑選隨機項並填充 - jQuery
- 21. 從陣列中挑選一個隨機數組元素
- 22. javascript按鈕從數組中挑選隨機物品
- 23. 從數組列表中挑選隨機顏色
- 24. 在c中挑選隨機數字#
- 25. 挑選隨機值
- 26. ArrayList隨機挑選
- 27. Java:一次從數組中挑選幾個不同的隨機數
- 28. 從4個表中隨機挑選
- 29. 從string.xml中挑選隨機字符串
- 30. 從列表中隨機挑選
您不需要完整的F-Y。您可以通過循環在M次後截斷F-Y隨機播放。如果M與N相比非常小,那麼您也可以考慮Floyd的算法。 –