srand()、rand()、time()、Sleep()\sleep()函数的用法

srand()函数用于初始化随机种子,rand()函数用于产生随机数。

rand()函数的用法:

需要的头文件:#include <stdlib.h>

定义函数 :int rand(void)

rand的内部实现是用线性同余法做的,他不是真的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是随机的,rand()会返回一随机数值,范围在0至RAND_MAX 间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。rand()产生的是假随机数字,每次执行时是相同的。若要不同,每次用srand()生成不同的随机数种子。

返回0至RAND_MAX之间的随机整数值,RAND_MAX的范围最少是在32767之间(int),即双字节(16位数)。若用unsigned int 双字节是65535,四字节是4294967295的整数范围。0~RAND_MAX每个数字被选中的机率是相同的。

常见用法:

如使用rand()函数产生1-100以内的随机整数:int number1 = rand()%100;

srand()函数的用法:

需要的文件:#include <stdlib.h> 

定义函数:void srand (unsigned int seed);

srand()用来设置rand()产生随机数时的随机数种子。参数seed必须是个整数,如果每次seed都设相同值,rand()所产生的随机数值每次就会一样。我们如何才能产生不可预见的随机序列呢?

常见的用法:

srand((unsign)time(NULL或0));//利用time函数返回的时间作为参数seed,这样srand产生的随机数种子就会不断变化

int number1 = rand()%100;//这样我们每次就会得到不同的随机数,%后的数字可以限定随机数的范围

sleep(1);//如果上面3条语句都在循环中,sleep几秒适当加大时间间隔可以使随机数更加随机

注意:

time()函数需要使用头文件:#include <time.h>

Sleep()\sleep()函数的用法:

执行进程挂起一段时间,也就是进程等待一段时间在继续执行。

linux中:unsigned int sleep(unsigned int seconds)

windows中:void Sleep(DWORD dwMilliseconds)

需要的头文件:Windows下为:#include <windows.h>    Linux 下为:#include <unistd.h>

注意:windows中为Sleep()函数(S大写),linux中为sleep()函数(S小写)。

Sleep()/sleep()函数括号里的时间,在windows下是以毫秒为单位,而Linux是以秒为单位。

如果想在Linux下也用微秒为单位挂起,可以使用线程休眠函数:void usleep(unsigned long usec)。

使用的时候需要声明头文件:#include <system.h>

猜你喜欢

转载自blog.csdn.net/zgcr654321/article/details/81771905
今日推荐