下面的代码生成一个数组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://tekpool.wordpress.com/2006/10/06/shuffling-shuffle-a-deck-of-cards-knuth-shuffle/ or http://en.wikipedia.org/wiki/Fisher-Yates_shuffle http://en.wikipedia.org/wiki/Fisher-Yates_shuffle
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)