Advertisement

在C/C++语言中使用Sleep函数可以解决for循环生成随机数的问题

阅读量:

在使用for循环生成随机数组时,有时会发现生成的随机数重复,这与预期效果存在偏差。经过相关资料查询后得知,当计算机运行速度较快时,for循环的执行时间极短,导致srand(time(NULL))每次调用返回的值相同

原因:以系统时间作为随机数种子的方式并不可靠。若应用程序在高性能设备上运行,系统时钟可能在构造函数调用之间无法及时更新,从而导致不同Random实例的种子值相同。

解决方法一:采用Random ra=new Random();

解决方法二:引入Sleep()函数。

Sleep函数

功能:使程序暂停执行一段时间,在指定时间后继续运行。

用法: Sleep(时间)

头文件: 在Windows系统中为--> windows.h

在Linux系统中为 --> unistd.h

注意事项: (1)Sleep函数对大小写敏感,部分编译器要求使用大写形式,而另一些则要求小写形式。

(2)Sleep括号中的时间参数,在Windows环境下以毫秒为单位计算,而在Linux环境下则以为单位计算。

代码示例:

首先展示未使用Sleep函数时的代码及运行结果:

复制代码
 /** *****************

全部评论 (0)

还没有任何评论哟~