【技巧】C/C++生成随机数数组(rand(),srand(),time()函数介绍)

核心知识点:

①rand(),srand()需要头文件 ,time()需要头文件

②rand()函数是用来生成随机数的函数,通常生成随机数范围为0~32767

③rand()函数生成的随机数是由一个特殊数经过特定公式生成的,这个特殊数通常称为”种子“,种子在每次开机后不变,故这种情况下生成的随机数组每次都一样。

④所以我们希望种子数是随时变化的,这里就用到了每一秒值都会变化的time()函数

⑤time(0)的值表示从1970年1月1日零点到现在过去了多少秒,这个值现在大约是15亿多

⑥srand()是用来重新设置随机数”种子“的,srand(time(0));语句即可重新设置种子,从而rand()生成的数为真随机数。

⑦这里通过 rand()%(right-left+1)+left 取模运输技巧控制想要的随机数范围

⑧随便普及生活应该记住的小知识:一天86400秒,一年(365)31536000秒

推荐链接:

具体知识不深入考究,本文参考链接:
http://c.biancheng.net/view/2043.html

【技巧】用time()函数生成当前日期时间(time()函数的使用) :https://blog.csdn.net/qq_41856733/article/details/88742097

生成随机数组函数如下

#include 
#include  
#include 
using namespace std;

void Random(int *a,int n,int l,int r)//生成范围在l~r的随机数 
{
	srand(time(0));  //设置时间种子
	for(int i=0;i<n;i++){
		a[i]=rand()%(r-l+1)+l;//生成区间r~l的随机数 
	}
}

void Print(int *a,int n)
{
	for(int i=0;i<n;i++)
		cout<<a[i]<<" ";
	cout<<endl;
}

int main()
{
	int n=16;//数组元素的个数,即生成随机数的个数
	int a[n];
	Random(a,n,1,100);//生成随机数的通常范围为0~32767,这里通过取模控制取值为0~100 
	Print(a,n);
	return 0;
}

你可能感兴趣的:(C++,STL&算法技巧)