总结:关于如何产生几个不同随机数的问题(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范围内的随机数):
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
相关文章推荐
- 关于文件下载的几个问题总结
- 有关于request,session的几个问题[总结网络搜集的一些资料]
- python中关于小数点后面的数四舍五入问题解决的几个函数供大家参考,现在问题是如何动态输入小数点后多少位,比如12.3000这样的
- 关于java产生不同的随机数
- 关于C语言几个关键字问题的总结
- 关于url编码问题的处理的几个方法的总结
- 关于iOS中如何给字体加粗的问题总结
- highcharts图表常见问题:关于如何设置数据点起始位置为坐标原点的问题分析与总结篇独家爆料
- 如果你是来12306系架,你如何实现? ——关于构建安全、稳定、高吞吐量的火车票网络售票系统几个方面(2)结束及总结
- 关于Random类产生随机数的一些问题
- highcharts图表常见问题:关于如何设置数据点起始位置为坐标原点的问题分析与总结篇(独家爆料)
- 【转】VC下关于debug和release的不同的问题总结
- Mybatis中关于如何使用多个参数(类型不同)查询的问题
- 关于“使用rand()产生的随机数每次得到的结果相同”的问题
- 关于html+ashx开发中几个问题的解决方法的感想和总结
- 关于IE,360,火狐,谷歌中遇到的几个兼容性问题的总结
- VC下关于debug和release的不同的问题总结
- 关于jQuery版本不同而产生的问题、写法的记录
- lua如何产生随机数,以及需要注意的问题
- 关于如何调整虚拟磁盘大小的问题总结