标签: permutation shuffle large-data
假设我想随机生成介于0和x之间的所有数字,而不会生成两次相同的数字。
这样做的一种天真的方法是随机生成数字并检查它们是否已经被使用过。但是,随着时间的推移,你会得到越来越多的重复,发电机也会变慢。
另一种可以做到这一点的方法是,在数组中填入0到x之间的所有数字,并对它们进行shuffle(置换)。 但是,当X变得足够大时,不再可行(存储和计算限制)。
有没有办法懒洋洋地生成元素?