c语言中rand()函数产生随机数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
srand和rand()配合使用产生伪随机数序列。rand函数在产生随机数前,需要系统提供的生成伪随机数序列的种子,rand根据这个种子的值产生一系列随机数。如果系统提供的种子没有变化,每次调用rand函数生成的伪随机数序列都是一样的。
srand(unsigned seed)通过参数seed改变系统提供的种子值,从而可以使得每次调用rand函数生成的伪随机数序列不同,从而实现真正意义上的“随机”。通常可以利用系统时间来改变系统的种子值,即srand(time(NULL)),可以为rand函数提供不同的种子值,进而产生不同的随机数序列
srand函数是随机数发生器的初始化函数。原型:void srand(unsigned int seed);
#include
#include
#include
#define D (24*60*60)
#define H (60*60)
#define M (60)
void main()
{
int i;
int s[10];
srand((unsigned)time(NULL));//此函数用于产生随机种子
//srand函数是随机数发生器的初始化函数。原型:voidsrand(unsigned int seed);
for(i=0;i<10;i++)
s[i]=rand();
printf("输出产生的10个随机数如下:\n\n");
for(i=0;i<10;i++)
printf("第%d个随机数为:%d\n\n",i+1,s[i]);
time_t t;
time(&t);
long time=t%D;
int h=time/H;
time=time%H;
int m=time/M;
time=time%M;
int f=time;
printf("time is %02d:%02d:%02d\n",h,m,f);
//得到的结果是国际标准时由于中国处在东8区有8个小时的时差
printf("得到的结果是国际标准时由于中国处在东8区有8个小时的时差\n");
printf("time is %02d:%02d:%02d\n",h+8,m,f);
}
程序运行结果: