給定大量數字(比如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. 確定更大的數字並劃分
- 3. 的Javascript BigInt.js如何劃分大數字
- 4. 由標量opencv矩陣劃分產生非常大/小數字
- 5. Python劃分數字
- 6. 在sas中劃分一個數字變量
- 7. 如何在python中劃分數字
- 8. 在Sql Server中劃分2個數字
- 9. 在Sass中劃分變量百分比?
- 10. 大熊貓 - 在時間桶分組行
- 11. 爪哇文字被一個很大的數字劃分
- 12. 將數組劃分爲最大組數
- 13. Objective-C中劃分變量
- 14. 劃分數千個字段
- 15. 數字拒絕劃分
- 16. 在C#中按文件類型劃分的文件的總大小和數量
- 17. 字符串中整數的劃分
- 18. 劃分數字在其他列
- 19. 按特定字符劃分文檔,然後再劃分爲變量字段
- 20. 劃分特定數量的隨機集中的大熊貓數據幀行
- 21. 最大基數的無劃分子集
- 22. 在python中劃分兩個非常大的數字會返回1
- 23. 在nasm中劃分商品時你如何劃分商數?
- 24. 在計劃列表中獲得最大數量
- 25. 數組太大而無法在matlab中劃分但不是python
- 26. 字符串的兩位數字劃分
- 27. 在python中劃分字符串2.7
- 28. 在python中劃分字符串
- 29. 有效劃分大功能
- 30. 劃分整數變量不起作用
這是一個實際的編程問題,還是一個思維難題? – hatchet 2014-11-23 23:57:46
是編程難題。我知道我們可以做類似K-Means Clustering的事情,但我想知道是否有更高效的創建桶的方法,比如0-9,10-19 .... n - n + 10,如果我們不知道數字的分佈。 – 2014-11-24 00:40:59