rand()函数与srand()函数的对比与使用

来源:互联网 发布:单片机连接马达 编辑:程序博客网 时间:2024/05/25 18:10

           1.  首先明确这rand(),srand()两个函数是在"stdlib.h"头文件里.(建议在c++里使用#include"cstdlib.h")

   2.  在标准的C库中函数rand()可以生成0~RAND_MAX之间的一个随机数,其中RAND_MAX 是stdlib.h 中定义的一个整数,它与系统有关。然而它是按指定顺序产生0~RAND_MAX中的随机数,故不算真正的随机数,只是伪随机数。

伪代码:使用rand()返回[x,y]里的随机数

int k

k =x+rand()%(y-x+1)   //k就是[x,y]里的随机数了

3.  正是rand()有一定的局限性,srand()可以补全了这个缺陷,srand()可以使用参数(rand()实质就是srand(1)里面参数是1.)。这个参数我们取个高大上的名字骗骗小萌新: 随机数生成器播散种子.  而种子的来源可以使用人工输入,但使用time(0)返回系统的时间才是广泛使用的。

代码分析:

#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"


int _tmain(int argc, _TCHAR* argv[])
{
unsigned int seed;             //初始化种子生成器
printf("rand :%u",rand());
printf("请输入srand的参数:\n");
scanf("%u",&seed);
srand(seed);
printf("srand :%u",rand());
system("pause");                
return 0;
}

你会发现参数是1时,srand()生成的值和rand()一样

原创粉丝点击