您的位置:首页 > 编程语言 > C语言/C++

总结:关于如何产生几个不同随机数的问题(C/C++)

2011-06-12 21:36 543 查看
对于如何产生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范围内的随机数):

srand( (unsigned)time(NULL) );
for (int i = 0; i < 4 ; i++)
{
	randIndex[i] =rand() % 12;  //randIndex为整形数组
	for ( int j = 0; j < i ; j ++)
	{
		if ( randIndex[i] == randIndex[j] )
		{
			randIndex[i] =rand() % 12;
			j = 0;
		}
	} //end for 
}//end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐