C++/C中出现的srand((unsigned)time(NULL))什么意思?

作用:

作用:这条指令的意思是利用系统时间来初始化系统随机数的种子值,使得每次运行由于时间不同而产生不同的随机数序列。

使用:如果想在一个程序中生成随机数序列,需要至多在生成随机数之前设置一次随机种子。
即:只需在主程序开始处调用srand((unsigned)time(NULL));后面直接用rand就可以了,切记不要放到for循环内。

介绍:

  • 使用原因:如果不使用srand函数,用rand()产生的随机数,在多次运行,结果是一样的。

srand(time(NULL)):这是两个函数

  • srand(unsigned seed)函数,这是在调用rand()这个函数之前使用的,rand()是一个产生随机数的函数,而srand是一个设置随机数种子的函数,通常这两个函数是一起使用的,来完成产生随机数的功能。srand函数通过参数seed来改变系统提供的种子值,从而可以使得每次调用rand函数生成的伪随机数序列不同,从而实现真正意义上的“随机”。

  • time(NULL)这个函数的返回值是作为srand函数的参数(seed)的,意思是以现在的系统时间作为随机数的种子来产生随机数,至于NULL这个参数,因为这个话就返回到现在时间时候的long秒,只有设置成NULL才能获得系统的时间。

例子

#include <iostream>
#include <iomanip>
#include <math.h>
#include <ctime>
using namespace std;

int main()
{
	//这条指令的意思是利用系统时间来初始化系统随机数的种子值,使得每次运行由于时间不同产生而产生不同的随机数序列。
    //如果想在一个程序中生成随机数序列,需要至多在生成随机数之前设置一次随机种子。
    //即:只需在主程序开始处调用srand((unsigned)time(NULL));后面直接用rand就可以了
	srand((unsigned)time(NULL));
	int temp = 0;
	temp= rand() % 10;  //获取0~10之间的随机数
	cout << temp << endl;
	return 0;
}
  • 5
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值