有n
个分区和m
个球。球具有不同的重量,比如球i
具有重量w_i
。是否有算法将球分配到x<n
箱中,以便最大限度地减少这些箱的最大负荷。
答案 0 :(得分:2)
这相当于multiprocessor scheduling problem,这是NP完全的。换句话说:算法存在,但它们非常慢。
答案 1 :(得分:1)
这是一个伪装的哈希函数问题。即您正在寻找最佳散列函数。查看此页面 - http://en.wikipedia.org/wiki/Hash_function
一般来说,你需要一个可以与w_i进行异或的随机密钥,然后取结果mod n来获取bin编号。
注意:我采取最大负荷来表示每箱的球数。如果你想减少每个垃圾箱的重量,哈希当然不起作用。