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

核心知识点:

①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;
}

  • 41
    点赞
  • 178
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值