产生大量测试用的随机数
- 最近学了排序算法,有的需要大量数据来测试算法复杂度,自己定义又太麻烦,所以看了一种产生随机大小,可控范围的数组来进行测试。
- 用到了随机数的两个函数,rand和srand 具体的可以自行查阅。
- rand() :不需要参数,它会返回一个从0到最大随机数的任意整数,最大随机数的大小通常是固定的一个大整数
- srand() :srand函数是随机数发生器的初始化函数。
原型:void srand(unsigned seed);seed的作用:srand函数的作用是根据参数seed,设置一个随机起始点,而rand函数根据这个起始点,产生随机数序列。默认的随机种子为1。如果随机种子一样,rand函数所产生的随机序列也一样。
#include<bits/stdc++.h>
using namespace std;
int *RandomArray(int n,int rangL,int rangR )//n为产生随机数的数量,rangL和rangR为随机数的范围,返回值类型为指针
{
int *arr = new int [n];
srand(time(NULL));//使用当前时间进行随机数发生器的初始化
for(int i = 0;i< n;i++)
{
arr[i] = rand() % (rangR - rangL+ 1) + rangL;
}
return arr;//return 的也是指针
}
int main()
{
//这里也可以定义n ,rangL和rangR。然后产生的随机数组类型也可以直接改。
int *arr= RandomArray(15, 2,100);
for(int i=0;i<15;i++)
cout<<arr[i]<<" ";
delete[] arr;//防止内存泄露
}
欢迎大家指正!