C语⾔中strand()rand()time()函数的简单介绍及获取随机数的⽅法
rand()函数简介
功 能 :伪随机数发⽣器
所属库:stdlib.h
⽤ 法 :需要先调⽤srand初始化,⼀般⽤当前⽇历时间初始化随机数种⼦,这样每⾏代码都可以产⽣不同的随机数。
函数原型:int rand(void);
接下来我们写⼀段代码来获取10个随机数
include <stdio.h>
include <stdlib.h>
杨英豪int main()
{
int i;
printf("输出0-99之间的随机数:\n");
for (i = 0; i<10; i++)
printf("%d ", rand() % 100);
system("pau");
return0;
}
运⾏截图
两次结果相同 程序在每次运⾏时都会产⽣10个伪随机数(为了表明是两次输⼊,第⼆次⽤.来隔开) 如果想要每次⽣成的随机数不同就需要结合接下来要说的srand函数
srand()函数简介
srand函数是随机数发⽣器的初始化函数。
原型:void srand(unsigned ed);
⽤法:它需要提供⼀个种⼦,这个种⼦会对应⼀个随机数,
如果使⽤相同的种⼦, 后⾯的rand() 函数会出现⼀样的随机数。
如: srand(1); 直接使⽤1来初始化种⼦。
下来我们⽤获取随机数⽅法的例⼦来介绍strand()函数:
1、这个代码为我们⾃⼰⼿动输⼊srand()函数的参数ed,我⽤ed=1来举例
运⾏截图
关于time()函数
2、我们可以发现⼿动输⼊参数很可能出现随机数重复,为了防⽌随机数每次重复常常使⽤系统时间
来初始化,接下来就要⽤到time()函数解决
使⽤ time函数来获得系统时间,它的返回值为从 00:00 : 00 GMT, January 1, 1970
到现在所持续的秒数(即从1970年1⽉1⽇的00 : 00 : 00到当前你所处的时间所经过的秒数),
然后将time_t型数据转化为(unsigned)型再传给srand函数,即: srand((unsigned)time(&t));
还有⼀个经常⽤法,(我们经常⽤这个⽅法)不需要定义time_t型t变量, 即: srand((unsigned)time(NULL));
直接传⼊⼀个空指针,因为你的程序中往往并不需要经过参数获得的t数据。
srand((int)getpid());
使⽤程序的ID(getpid())来作为初始化种⼦,在同⼀个程序中这个种⼦是固定的。接下来我们写⼀段代码举例说明:
#include <stdlib.h> //⽤到了srand 函数,所以要有这个头⽂件
#include <stdio.h>
黑胡椒牛柳意面
#include <time.h> //⽤到了time 函数,所以要有这个头⽂件
int main()
{
君的名字int arr[10] = { 0 };
生日礼物英文
int i;
unsigned int ed;
scanf("%d", &ed);//⼿动输⼊种⼦
srand(ed);
for (i = 0; i < 10; i++)
{
arr[i] = rand() % 100; //产⽣100以内的随机整数 接下来我们会介绍到rand 函数
平结printf("%d .", arr[i]);
}
爸爸怎么写system("pau");
return 0;
}
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main()
{医德
劳动创造美作文
int arr[10] = { 0 };
int i;
srand((unsigned)time(NULL));//调⽤time函数来获取随机数
for (i = 0; i < 10; i++)
{
arr[i] = rand() % 100;
printf("%d.", arr[i]);
}
system("pau");
return0;
}
运⾏截图
我们发现每次运⾏所产⽣的随机数都不相同,通常采⽤这种⽅法获取随机数