C++生成随机数

C++中生成随机数常用这两个函数:
rand()和srand()

rand()函数,生成一个范围在[0,RAND_MAX]的随机数,RAND_MAX的值为32767

其中RAND_MAX定义在cstdlib头文件中。

#include 
using namespace std;
#include 

int main() {
     
	cout << RAND_MAX << endl;
	cout << rand() << endl;;

	return 0;
}

注意:rand()函数生成的是伪随机数,故每次执行的结果是相同的。

我们可以用srand((unsigned)time(NULL))的方法产生不同的随机种子,需要头文件ctime。

#include 
using namespace std;
#include 
#include 

int main() {
     
	srand((unsigned)time(NULL));
	cout << RAND_MAX << endl;
	cout << rand() << endl;;

	return 0;
}

产生指定范围内的随机数:
可以先使用rand()函数产生一个[0,RAND_MAX]范围内的随机数,然后在变换到指定范围内。
产生[a,b)的随机数,可以使用 (rand() % (b-a))+a;
产生[a,b]的随机数,可以使用 (rand() % (b-a+1))+a;
产生(a,b]的随机数,可以使用 (rand() % (b-a))+a+1;
通用公式:a+rand() % n;
其中:a为范围起始位置,n为整数的范围
产生[a,b]的随机数,可以使用 a+(int)b*rand()/(RAND_MAX+1);
产生[0,1]的浮点数,可以使用 rand()/double(RAND_MAX);


例子
产生500个[0,1]的随机数:

#include 
using namespace std;
#include 
#include 

int main() {
     
	srand((unsigned)time(NULL));
	for (int i = 1; i <= 500; i++)
		cout << rand()%2 << endl;

	return 0;
}

你可能感兴趣的:(C++基础学习,c++,random)