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)。

标签: C/CPlusPlus

添加新评论