2011-03-03 143 views
0

我在尋找以下問題的一個極好的解決方案的均勻分佈的結果:功能,可將固定數量的桶

我得到的是確定與一個唯一的64位整數,可爲任意值結構的X號。我想將它們均勻分佈到預定義數量的桶中,而無需知道所有最小/最大id值,而不必移動任何值。

到目前爲止,我可以提出的最佳解決方案是查找映射,其中存儲區id是鍵,值是結構ID號列表。

只是想檢查是否有人對這個問題更好的解決辦法(?)

+0

http://en.wikipedia.org/wiki/Hash_table – suszterpatt 2011-03-03 11:08:43

+1

想必循環賽是出局嗎? – Nim 2011-03-03 11:12:17

回答

1

,你postulating從桶ID查找地圖表示各個結構獨特的ID列表意味着你有沒有興趣使用這些獨特的ID找到結構。如果這是真的,那麼看起來你的問題是如何在每個桶中獲得適當數量的元素......你可以通過在桶上增加一個桶計數器來做到這一點 - 在必要時從最後到第一個包裝 - 並分配連續的結構進入相關的桶。

不過,我懷疑你可能沒有準確地表達你的真實需求,並可能需要使用這些獨特的ID來查找結構?如果這是真的,那麼一個關鍵的問題是,你是否需要統計上相同可能性的結果與任何給定的桶相關聯(例如,每個桶的結構近似和平均值#結構/#桶,但會有波動),還是你確實需要它。在前一種情況下,散列圖聽起來合適。否則,我想不出一個特別好的解決方案。也許值得一提的是,您可以指向值並移動指針以實現一些負載平衡,同時避免移動實際對象。