核心知识点:
①rand(),srand()需要头文件<stdlib.h> ,time()需要头文件<time.h>
②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 <iostream>
#include <cstdlib>
#include <ctime>
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;
}