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; } |
|
来自: 星光闪亮图书馆 > 《001、随机数生成》