这个类基于 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&) =

本文介绍了一个利用 intel Math Kernel Library (MKL) 创建的高性能随机数生成器,该生成器与C++11接口兼容,支持int、float和double类型的随机数,并能在不初始化种子的情况下提供不同数值。通过示例展示了如何在循环中方便地生成随机整数,以及如何重复使用同一对象在不同范围内生成随机数。
最低0.47元/天 解锁文章
6285

被折叠的 条评论
为什么被折叠?



