【发布时间】:2013-08-11 10:09:16
【问题描述】:
我需要生成大约 9 到 1 亿个不重复的随机数,范围从零到生成的数字量,并且我需要非常快速地生成它们。对类似问题的几个答案提出了简单地对数组进行洗牌以获得随机数,而其他人则提出了使用布隆过滤器。问题是,哪个效率更高,如果是布隆过滤器,我该如何使用呢?
【问题讨论】:
-
没有实际数字就无法回答这个问题。你需要多少个随机数,什么类型,什么范围,还有哪些你没有提到的约束? “真的很大”是没有意义的。你的意思是比记忆中的更多吗?
-
我需要大约 9-1 亿个随机数,从零到生成的数字量不等,这意味着内存不是一个很大的问题,但我确实需要一个高效的算法,而且我是正如 ROOt_R3z 建议的那样,不确定存储生成的数字然后检查它们是否已经存在于存储中会花费多少时间。谢谢你的评论
-
它们需要有多随机?安全是一个问题吗?
标签: random shuffle bloom-filter non-repetitive