C++随机数API
C++ 只能用C库的api来产生随机数. 头文件:#include <cstdlib>
//参数随机数,数字范围为 0 ~ RAND_MAX 之间
int rand();
//在调用 rand 前调用,设置随机数种子
void srand(unsigned int seed);
通常随机数种子用当前时间来设定。例如下:
#include <ctime>
srand((unsigned)time(NULL));
另,一些通用的方法如下:
-
要取得[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)。