欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

深海中的STL—mt19937

程序员文章站 2022-07-07 12:11:54
mt19937 当你第一眼看到这玩意儿的时候 肯定禁不住吐槽:纳尼?这是什么鬼? 确实,这个东西鲜为人知,但是它却有着卓越的性能 简介 mt19937是c++11中加入的新特性 它是一种随机数算法,用法与rand()函数类似 但是具有速度快,周期长的特点(它的名字便来自周期长度:2^19937 1) ......

mt19937

当你第一眼看到这玩意儿的时候

肯定禁不住吐槽:纳尼?这是什么鬼?

确实,这个东西鲜为人知,但是它却有着卓越的性能

简介

mt19937是c++11中加入的新特性

它是一种随机数算法,用法与rand()函数类似

但是具有速度快,周期长的特点(它的名字便来自周期长度:2^19937-1)

说的直白一点,我们都知道rand()在windows下生成的数据范围为0-32767

但是这个函数的随机范围大概在\((-maxint,+maxint)\)(maxint为int类型最大值)

实例

这个东西用法非常简单

#include<random>
#include<ctime>
std::mt19937 rnd(time(0));
int main()
{
    printf("%lld\n",rnd());
    return 0;
}