給定大量數字(比如1兆)。你怎麼能把它們分成N個桶,每個桶都有一定範圍。 病例: 1.假設分佈不均勻 2.假設分佈是均勻的。在桶中劃分大量數字
-1
A
回答
1
如果不一致,並且您希望有相同數量的存儲桶,只需製作您自己的哈希表即可。
如果你有1000個1-1000的數字,並且你需要10個桶,那麼簡單地給出1-100的哈希碼爲0,101-200爲1.這很容易做到 - 你可以do(maxNum(首先是100)-1)/ 100(即1000/numOfBuckets)來查找散列表內數組的索引。
如果你想要均勻分佈 - 這有點困難。你將不得不首先考慮以前的不均勻分佈,然後重新組合,以便每個桶具有相同的數字。
重新編號時,只需取數字(遍歷每個存儲桶,查找大小並添加),然後除以存儲桶數。現在你有了新的lambda值。如果你不關心範圍不統一(如1-10,11-20,而不是1-15,15-20等),然後遍歷舊的散列表並添加到新的散列表w /新的lambda值,按順序填充 - 這是最接近你會得到(有時你會從lambda值-1)。
如果你不太關心原始的不均勻分佈,但是同樣的範圍,只需要把你有的數字的數量,使用一些簡單的排序,如quicksort排序,然後把(lambda值)桶。
不知道這是你的意思,但希望這有助於。
+0
謝謝,幫助 – 2014-11-24 05:21:41
相關問題
- 1. 確定更大的數字並劃分
- 2. 由標量opencv矩陣劃分產生非常大/小數字
- 3. 在sas中劃分一個數字變量
- 4. 在Sql Server中劃分2個數字
- 5. 在Sass中劃分變量百分比?
- 6. Objective-C中劃分變量
- 7. 劃分數千個字段
- 8. 數字拒絕劃分
- 9. 劃分數字在其他列
- 10. 按特定字符劃分文檔,然後再劃分爲變量字段
- 11. 劃分特定數量的隨機集中的大熊貓數據幀行
- 12. 在python中劃分兩個非常大的數字會返回1
- 13. 在計劃列表中獲得最大數量
- 14. 在python中劃分字符串2.7
- 15. 有效劃分大功能
- 16. 字符串劃分
- 17. 在特定數量的子列表中劃分列表
- 18. 最大分量的文字分區
- 19. Matlab左 - 向量中的劃分?
- 20. 如何在while()中劃分數據?
- 21. 在Python 3.5中,在劃分一個偶數時,爲什麼劃分和劃分給出了不同的答案
- 22. php算法劃分和設置數字
- 23. 如何劃分一個字符數組
- 24. 按組劃分字符串數組
- 25. 如何在java腳本中劃分兩個數字
- 26. 如何從大量的數字中獲得最大的數字?
- 27. XML分析大量數據
- 28. 將大熊貓數據框列分成n個桶
- 29. 分頁大量的數據在GridView
- 30. 將數據集劃分爲大小爲n的分箱matlab
這是一個實際的編程問題,還是一個思維難題? – hatchet 2014-11-23 23:57:46
是編程難題。我知道我們可以做類似K-Means Clustering的事情,但我想知道是否有更高效的創建桶的方法,比如0-9,10-19 .... n - n + 10,如果我們不知道數字的分佈。 – 2014-11-24 00:40:59