下面的代码生成一个由 N
个整数随机数组成的数组,并将结果存储在 random_int_array
N=20
allocate(array(N/2))
call random_seed
call random_number(array)
random_int_array=int(array*N)
问题是我可能会在 random_int_array
中生成重复项,但我不希望这样。如何从该数组中删除重复项,或者等效地,如何生成一组唯一的随机数?
请注意,array
的维度为 N/2。所以问题基本上是从 N 中提取 N/2 个不重复的数字。
最佳答案
听起来您想要随机顺序从 1 到 19 的整数。这将是这些整数的洗牌。例如,参见 http://tekpool.wordpress.com/2006/10/06/shuffling-shuffle-a-deck-of-cards-knuth-shuffle/或http://en.wikipedia.org/wiki/Fisher-Yates_shuffle
关于random - 如何获得从1到N随机排序的数字数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9840808/