栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【C语言】用于生成随机数的rand函数和srand函数

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【C语言】用于生成随机数的rand函数和srand函数

一、rand函数
1.rand函数的作用:生成一个伪随机数
2.函数声明:int rand(void);
3.需要的头文件:stdlib.h
4.注释:rand 函数在 0 到 RAND_MAX范围内返回一个伪随机的整数。在调用 rand 函数之前,使用 srand 函数为伪随机数生成器设置种子

补充说明:

1.RAND_MAX:RAND_MAX 是 头文件中的一个宏,它用来指明 rand() 函数所能返回的随机数的最大值。C语言标准并没有规定 RAND_MAX 的具体数值,只是规定它的值至少为 32767(0x7fff)

2.rand() 函数产生的随机数是伪随机数,是根据一个数值按照某个公式推算出来的,这个数值我们称之为“种子”。种子和随机数之间的关系是一种正态分布。
在没有调用 srand() 函数之前,调用rand()函数生成的随机数序列和调用srand()函数并设置种子的值为1后生成的序列相同(下面有代码进行说明),我们可以通过 srand() 函数来重新“播种”,这样生成的随机数序列就会发生改变。 

3.在实际开发中,我们可以用时间作为参数,只要每次播种的时间不同,那么种子的值就不同,最终的生成的随机数序列也就不同(下面有代码进行说明)。

  二、srand函数
1.srand函数的作用:设置一个随机的起点
2.函数声明:void srand(unsigned int seed);
3.需要的头文件:stdlib.h
4.参数:用于生成随机数的种子

三、代码

代码1:

#include 
#include 

int main()
{
	int i = 0;
	int ret = 0;
	for (i = 0; i < 10; i++) {
		ret = rand();
		printf("%d ", ret);
	}
	printf("n");

	srand(1);  //将种子的值设置为1
	for (i = 0; i < 10; i++) {
		ret = rand();
		printf("%d ", ret);
	}
	return 0;
}

输出的结果是:

代码2:

#include 
#include 
#include 

int main()
{
    int i=0;
    //用当前时间为随机数生成器设置种子
    srand((unsigned int)time(NULL)); 
    for(i=0; i<10; i++){
        printf("%d ",rand());
    }
    printf("n");
    return 0;

输出的结果:

输出的结果和代码1的结果并不一样,而且每次执行同样的代码,结果都不一样

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/691124.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号