有没有算法能够根据一个hashcode(数字)从一个node的list中获取半数以上的候选nodes

问题:
有一个list,里面有很多节点。
有一个hashcode(数字),作为随机因子。
现在想通过一个算法根据随机因子获取半数以上的节点作为候选节点。
有一些条件:
1.候选节点需要原始节点数量的一半以上
2.同样的随机因子获取的候选节点是一致的
3.不同的随意因子尽量候选节点不同(大概率不同即可)

各位大神有没有好的算法

阅读 3.2k
1 个回答
  1. 首先得到随机因子k的一个哈希值,比如h = SHA512(k)

  2. h的所有二进制位,若h[k] = 1,则选择列表中的第k个节点,否则不选择。最后将本轮选出的所有节点从列表中移除。

  3. 若选出的节点不够半数以上,则令h = SHA512(h),重复第2步。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题