rand()、 srand()和time(0)函数

rand()函数在C标准库中用于生成0到RAND_MAX之间的伪随机数,但每次运行会产生相同的序列。为得到不同的随机数,可以使用srand()函数初始化随机数生成器,通常用time(0)作为种子,确保每次运行时种子不同。time(0)返回的是当前系统时间的秒数,可用于初始化随机数种子。
摘要由CSDN通过智能技术生成
rand()和srand()函数原型是:
void srand(unsigned int);
int rand(void);

标准C库函数中的rand()可以生成0~RAND_MAX之间的一个随机数,其中RAND_MAX是stdlib.h中定义的一个整数,它与系统有关。rand()函数没有输入参数,它直接通过rand()来引用,例如可以通过下面的语句来打印两个随机数:
printf("Random number is %d %d\n", rand(), rand() );
因为rand()按指定的顺序来产生整数,因此每次执行上面的语句,都产生相同的两个整数,所以说rand()产生的随机数并不是真正的随机数,是伪随机。 为了使程序在每次执行时都产生一个真正的随机数,我们通常通过为随机数生 成器(rand())提供一粒新的随机种子,函数srand()可以为rand()提供随机数种子。种子不同,产生的随机数也不同,srand()成为随机数生成器的初始化器。

time(0)的作用是返回现在的系统时间,并将它转换为内部格式时间。

附time()函数源码:
/***
*time.c - get current system time
*
*       Copyright (c) 1989-1997,
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值