对于如何产生N个互不相同的随机数的问题,网上已经有很多文章介绍了,如:http://topic.csdn.net/u/20090328/14/d4b09e9a-227e-4315-ad83-e579bfe1ef1c.html,http://www.programfan.com/club/showpost.asp?id=79884&t=o,经过实践在这里简要总结一下实现的思路:
1.用srand(seed)给rand()函数设定种子,如:srand((unsigned)time(NULL));
2.然后用rand(void)产生伪随机unsigned int 整数,并存储在数组(或其他合适的数据结构)中,其中,在每次将新产生的随机数存储到数组前,都要做检查(检查该随机数是否已经存在于数组中),若检查通过则存储到数组中,否则重复步骤2。
关键代码段如下所示(产生4个从0到12范围内的随机数):