这个类基于 intel Math Kernel Library 的随机数生成器,可以生成平均分布的 int/float/double。保持接口与 C++11 一致,即:对于 int,生成范围是 [a, b];对于 float 与 double,生成范围是 [a, b)。
不需要每次去初始化种子。只需要随时调用即可,每次调用都可以得到不同的随机数。
代码如下(编译时需要指定 -std=c++11):
#ifndef RANDOM_NUMBER_CLASS_H
#define RANDOM_NUMBER_CLASS_H
#include <mkl.h>
template<typename Type>
class Random
{
public:
Random();
Random(const Random&) = delete;
Random(Random&&) = delete;
Random& operator=(const Random&) = delete;
Random& operator=(Random&&) = delete;
~Random();
Type