-1

我需要在 AS3 中生成一个从 1 到 100 的随机数,不会生成两次。所以我需要生成每个数字,直到所有数字都完成。我怎样才能做到这一点?

4

3 回答 3

3

用数字 1 到 100 填充数组。

随机洗牌(使用 Fisher-Yates 洗牌)。

从第一个数组索引开始取每个数字......

于 2013-09-10T10:13:32.977 回答
1

用数字 1-100 填充数组“_randomNumbers”。每次您需要一个号码时,请使用以下命令:

if (_randomNumbers.length>0) {
newRandomNumber = _randomNumbers.splice( Math.floor(Math.random(_randomNumbers.length)), 1 )[0];
}
于 2013-09-10T14:19:49.267 回答
0

查看更多详细信息

 class NonRepeatedPRNG {
private final Random rnd = new Random();
private final Set<Integer> set = new HashSet<>();
public int nextInt() {
for (;;) {
  final int r = rnd.nextInt();
  if (set.add(r)) return r;
}
}
}
于 2013-09-10T10:12:51.150 回答