我当时正在做一个益智游戏,我想生成一个在一些限制之间的随机数列表。
我已经使用过rand和srand函数,但它也为我提供了重复值。我想生成一个没有重复的随机列表,我该怎么做?

最佳答案

通常的方法是这样的:

  populate an array source_array of size <n> with numbers from 0 to n-1

  while n > 0
  use rand to generate a random number x in the range 0..n-1

  add source_array[x] to the result list

  source_array[x] = source_array[n-1]; // replace number just used with last value

  --n; // next time, one less number

关于c++ - 使用C生成不重复的随机数列表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8930401/

10-12 17:28