c++中random的方法


参考博客

rand方法

rand()不需要参数,它会返回一个从0到最大随机数的任意整数,最大随机数的大小通常是固定的一个大整数。 这样,如果你要产生0~10的10个整数,可以表达为: 

int N = rand() % 11; 

这样,N的值就是一个0~10的随机数,如果要产生1~10,则是这样: 

int N = 1 + rand() % 10;

总结来说,可以表示为:

a + rand() % n 

random库使用

c++11才有的方法

#include  
#include 
using namespace std;
int main()      
{       
    default_random_engine e;       
    for (size_t i = 0; i < 10; ++i) //生成十个随机数       
       cout << e() << endl;       
    cout << "Min random:" << e.min() << endl; //输出该随机数引擎序列的范围       
    cout << "Max random:" << e.max() << endl;       
    return 0;       
}

--修改随机种子

#include 
#include 
using namespace std;
int main()
{
    default_random_engine e; //或者直接在这里改变种子 e(10) 
    e.seed(10); //设置新的种子
    for (size_t i = 0; i < 10; ++i)
       cout << e() << endl;
    cout << "Min random:" << e.min() << endl;
    cout << "Max random:" << e.max() << endl;
    
    return 0;
}