1

假设我想随机生成 0 到 x 之间的所有数字,而不会生成两次相同的数字。

一种天真的方法是随机生成数字并检查它们是否已被使用。然而,随着时间的推移,你会得到越来越多的副本,并且生成器会变慢。

另一种可以做到这一点的方法是,用 0 到 x 之间的所有数字填充一个数组,然后对它们进行洗牌(置换)。但是,当 X 变得足够大时,这样做不再可行(无论是存储还是计算限制)。

有没有办法懒惰地生成元素?

4

0 回答 0