VS2019生成随机数的方法:
1、包含 <ctime> 可以获取系统时间。
2、使用 srand((unsigned int )time(NULL)) 设置随机数种子。
3、用 rand() 生成 [0,RAND_MAX] 的随机整数。
4、RAND_MAX=32767
5、用 rand() %size+a 生成 [a,size+a] 区间的随机整数
6、生成[0, 1]浮点随机数:1.0*rand()/RAND_MAX
7、生成任意区间内的浮点随机数:(区间大小为size,区间起始位置为a,
该区间可比上面非浮点的区间更大,不受RAND_MAX限制)
1.0*rand()/RAND_MAX*size + a
8、若要生成右端点比RAND_MAX更大的整数随机数:
(long long)(1.0*rand()/RAND_MAX*size + a)
以下是一个完整的例子:
#include <iostream>
#include <ctime>
using namespace std;
int randnumber(int min,int max)
{
int sizeint=0,a=0;
a = min;
sizeint = max - min+1;
int randnum;
srand((unsigned int)time(NULL)); //设置随机数种子。
randnum = rand() % sizeint + a; //生成随机数,范围是 [a,a+size] 生成的随机数类型为 int。
return randnum;
}
double randnumber(double min,double max)
{
double sizedouble = 0,a = 0;
a = min;
sizedouble = max - min ;
double randnum;
srand((unsigned int)time(NULL)); //设置随机数种子。
randnum = 1.0*rand()/RAND_MAX*sizedouble + a; //生成随机数,范围是 [a,a+size] 生成的随机数类型为double.
return randnum;
}
long long randnumber(long long min,long long max)
{
long long sizelong = 0,a = 0;
a = min;
sizelong = max - min + 1;
long long randnum;
srand((unsigned int)time(NULL)); //设置随机数种子。
randnum =(long long)(1.0 * rand() / RAND_MAX*sizelong+a); //生成比RAND_MAX还大的随机数,范围是 [a,a+size],生成的随机数类型为 long long。
return randnum;
}
int main()
{
int numint1 = 0, numint2 = 0;
double num0_1 = 0, numdouble = 0;
long long numlong=0;
cout << "RAND_MAX = " << RAND_MAX << endl;
numint1=randnumber(3,7);
cout << "生成1个[3,7]之间的随机整数。" << endl; //生成[3,7]之间的随机数(区间大小为5)
cout << numint1 << endl;
numint2=randnumber(1, 100); //生成[1,100]之间的随机数(区间大小为100)
cout << "生成1个[1,100]之间的随机整数。" << endl;
cout << numint2 << endl;
num0_1=randnumber(0.0,1.0); //生成[0,1]之间的随机数,类型为double。
cout << "生成1个[0,1]之间的随机整数。" << endl;
cout << num0_1 << endl;
numdouble=randnumber(2.35, 9.77); //生成[2.35,9.77]之间的随机数,类型为double。
cout << "生成1个[2.35,9.77]之间的随机整数。" << endl;
cout << numdouble << endl;
numlong=randnumber(1L,100000000L); //生成[1,100000000]之间的随机数(区间大小为10000000)
cout << "生成1个[1,100000000]之间的随机整数。" << endl;
cout << numlong << endl;
system("pause");
return 0;
}
联系客服