在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)
还没有任何评论哟~
