rand函数

目录

1.1 rand函数

1.1.2 srand函数

1.1.3 time函数

1.2 rand函数生成随机数原理


1.1 rand函数

#include<stdlib.h>

int main()
{

   int rand( void );

   return 0;
}

 定义:生成一个伪随机数

头文件:  <stdlib.h>

注释:rand函数返回一个范围为0到RAND_MAX(0x7fff / 32767)的伪随机整数。在调用rand之前,需要使用srand函数为伪随机数生成器提供种子这也就意味着每次调用rand函数时,都需要先调用srand函数)。

// Maximum value that can be returned by the rand function:
#define RAND_MAX 0x7fff

注:这里是define定义的宏,rand函数可以返回的最大值。十六进制 0x7fff 等于十进制 32767。

1.1.2 srand函数

#include<stdlib.h>

int main()
{
	void srand( unsigned int seed );

	return 0;
}

 定义:设置一个随机起点

头文件:  <stdlib.h>

注释:srand函数设置了生成一系列伪随机整数的起始点。种子的任何其他值将生成器设置为随机起点。Rand检索生成的伪随机数。在调用srand之前调用rand生成与调用srand相同的序列,其中seed传递为1

注:其中seed为unsigned int类型的变量,也被称作种子,传递的值为1。也就意味着:srand(unsigned int seed) == srand(1);这样调用会导致每次产生的伪随机数相同,因为种子相同,产生的随机数也相同。为了使伪随机数更具有随机性,常常使用系统时间time函数来初始化。

1.1.3 time函数

#include<time.h>

int main()
{

	time_t time(time_t * timer);

	return 0;
}

定义:获取系统时间

头文件:  <time.h>

注释:time函数根据系统时钟返回自协调世界时1970年1月1日午夜(00:00:00)以来经过的秒数。返回值存储在定时器给定的位置。该参数可以为NULL,在这种情况下,返回值不被存储。( time函数 == 时间戳)。

备注:

      时间戳 是指格林威治 时间 1970年01月01日00时00分00秒起至当下的总秒数。

       时间戳计算的是北京时间相较于计算机的起始时间之间的一个差值,将它换算成以秒为单位的一个数字,而使用time函数可以理解为:返回调用time函数的时间点与计算机起始之间的一个时间戳 。

1.2 rand函数生成随机数原理

       rand函数在使用之前需要调用srand函数,srand函数生成伪随机数更建议使用time函数,time函数的参数一般置成空指针(NULL),返回类型需要强制转化成unsigned int,unsigned int 类型的time(NULL)就是srand需要的一直会变化的种子 ,然后被rand函数调用

#include<stdlib.h>
#include<time.h>

int main()
{
	srand((unsigned int)time(NULL));
	rand();

	return 0;
}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值