规定范围内一定数量无重复随机数的产生算法及应用

2012-10-16 11:34:52谢春祥张兆亮
河南科技学院学报(自然科学版) 2012年1期
关键词:方法

谢春祥,张兆亮

(蚌埠学院,安徽蚌埠233030)

规定范围内一定数量的随机数的产生在生产研究中有着广泛的应用.通常的随机数产生方法是重复进行生成操作,直到产生足够数量的随机数为止.并且为了防止重复,还要不断扫描对比己经生成的随机数.这样效率很低,而且可能陷入死循环(一直产生不了合格的随机数,程序持续空转)[1-6].本文提出通过“下标填充补尾法”,可以有效解决通常方法的弊端,达到高效可靠的目的.

1 通常产生规定范围随机数的方法

要生成符合要求的随机数,通常都是先产生一般的随机数,再通过特定的方法从中挑选所需要的数.普通随机数的产生常用的rand()函数实现,例如,要生成一个值在区间[1,N]内的随机数R,代码如下:

srand((unsigned)time(NULL));

R=rand()%(N+1);

第1行代码是给随机数函数赋一个种子值,以便随机函数在此基础上递推出随机数来.这里用不断变化的计算机时间做种子.在第2行代码里,由rand()函数产生一个随机数.但由于rand()的返回值在0~327 67之中(一个short整型数值的范围),所以当N值小于327 67时,就要将返回值模(N+1)取余,以使值的范围一定落在[1,N]中.如果要取的随机数值大于327 67,则可由多个rand()的返回值进行线性叠加获得[2].一定范围内随机数产生了,下面着重探讨如何产生规定数量的随机数.

2 下标填充法产生随机数

假设要产生M个值在区间[1,N]的随机数.常用的方法就是重复执行上面所说的两行代码,直到产生M个满足条件的随机数为止[3-5].但这样做将要花费大量的时间……

登录APP查看全文

猜你喜欢
方法
中医特有的急救方法
中老年保健(2021年9期)2021-08-24 03:52:04
高中数学教学改革的方法
河北画报(2021年2期)2021-05-25 02:07:46
化学反应多变幻 “虚拟”方法帮大忙
变快的方法
儿童绘本(2020年5期)2020-04-07 17:46:30
学习方法
用对方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
最有效的简单方法
山东青年(2016年1期)2016-02-28 14:25:23
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
赚钱方法
捕鱼