C语言:利用rand、srand、time函数生成随机数

目录

1,rand函数

2,srand函数

3,time函数


1,rand函数

        

        如图1所示,rand函数没有参数,返回值为int类型。

图1
图1

         rand函数用于生成一个随机数,但是要搭配srand使用,否则当再次运行程序的时候就会出现和上一次一样的结果。例如下列程序:

#include <stdio.h>

int main()
{
	int ret = rand();
	printf("%d", ret);
	return 0;
}

        如图2所示,两次执行的结果都是41。

图二
图2

        所以rand函数生成的是伪随机数,是通过某种固定的算法生成的数字,范围是(0, RAND_MAX),RAND_MAX的大小是0x7fff,十进制是32767。也就是rand生成的是0到32767之间的数字。

2,srand函数

        srand函数设置随机数的生成器,也就是随机数的生成起点。srand函数的参数是unsigned int类型,返回值是void类型,如图3所示:

图3

 而srand函数作为生成器,其参数就作为一个种子控制rand生成随机数。所以srand的参数要一直变化,否侧就会出现重复生成一个数字的情况。这就出现了一个问题,我要生成一个随机数字的前提条件是有一个不断变化数。

3,time函数

        time函数可以返回一个时间戳。时间戳的参数是指针类型,返回的就是时间戳time_t。我们这里就传入一个null。

图4

         而时间戳又是什么呢?时间戳就相当于一条道路上的路牌公里数,公里数告诉你离目标有多远,而时间戳返回的是当前计算机的时间,相较于计算机的起始时间的差值,如图5所示,显示从1970年到现在的时间,转化为一串数字,这样一来,我们之前想要的不断变化的数字就有了。

图5

 那么最终实现随机数的代码就如下:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
	
		srand((unsigned int)time(NULL));
		int ret = rand();
		printf("%d\n", ret);
		return 0;
}

注意:要加上头文件#include<stdlib.h>和#include<time.h>,这是srand函数和time函数所在的头文件。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菲利普赵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值