问题:
有一个list,里面有很多节点。
有一个hashcode(数字),作为随机因子。
现在想通过一个算法根据随机因子获取半数以上的节点作为候选节点。
有一些条件:
1.候选节点需要原始节点数量的一半以上
2.同样的随机因子获取的候选节点是一致的
3.不同的随意因子尽量候选节点不同(大概率不同即可)
各位大神有没有好的算法
问题:
有一个list,里面有很多节点。
有一个hashcode(数字),作为随机因子。
现在想通过一个算法根据随机因子获取半数以上的节点作为候选节点。
有一些条件:
1.候选节点需要原始节点数量的一半以上
2.同样的随机因子获取的候选节点是一致的
3.不同的随意因子尽量候选节点不同(大概率不同即可)
各位大神有没有好的算法
2 回答5.3k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
1 回答890 阅读✓ 已解决
1 回答898 阅读✓ 已解决
2 回答825 阅读
1 回答662 阅读
833 阅读
首先得到随机因子
k
的一个哈希值,比如h = SHA512(k)
。对
h
的所有二进制位,若h[k] = 1
,则选择列表中的第k
个节点,否则不选择。最后将本轮选出的所有节点从列表中移除。若选出的节点不够半数以上,则令
h = SHA512(h)
,重复第2步。