有效:固定范围内的随机数,无需重复

kxk*_*kxk 1 oop random performance

嘿伙计们,我知道随机数有一百万个问题,但正是因为我搜索了很多,但我找不到类似于我的东西 - 没有暗示它不在那里.在任何情况下,请原谅我,如果我重复一个问题,请指出我,如果是这样的话.

所以,我想以最有效的方式做一些简单的事情.

我想逐个随机生成N范围内的所有整数[0, N],这样就不会重复.

我知道,我可以通过插入所有内容list,将其随机播放,获取头部然后从列表中删除头部来实现此目的.但后来我将有洗牌我长的名单N,N-1倍.

有更好/更快的想法吗?

Jas*_*ram 6

您可以只进行一次随机播放,然后单步执行列表.

我推荐Fisher-Yates shuffle.