【发布时间】:2011-10-20 11:06:15
【问题描述】:
我想创建一组打乱的整数,这样:
- 给定相同的种子,每次洗牌都是一样的
- 当我迭代时,洗牌集中的每个数字在重复之前都将被使用一次
- 适用于大型集合(我想要 0 到 20 亿之间的所有数字)
- 将在一个范围内生成,例如,100 到 150。
如果您想要 0 到指定数字之间的所有数字,此选项提供了一个很好的解决方案:Generating Shuffled Range Using a PRNG Rather Than Shuffling
有什么想法吗?
【问题讨论】:
-
你为什么不直接使用你喜欢的解决方案并将结果改变最小?因此,对于 100–150,这将类似于
GenerateSequence(50).Select(i => i + 100)。