使用多精度类型测试boost::random模块中所有与整数相关的生成器和分布的实现
在C++编程中,使用随机数生成器可以帮助我们处理一些特定的问题。而在boost库中,boost::random模块则提供了多种随机数生成器和分布的实现。本文将使用多精度类型对该模块中所有与整数相关的生成器和分布进行测试。
为了方便测试,我们首先需要定义一个多精度整数类型,这里我们使用boost::multiprecision::int128_t:
#include <boost/multiprecision/cpp_int.hpp>
#include <boost/random.hpp>
typedef boost::multiprecision::int128_t mp_int;
下面将逐一对boost::random模块中的整数相关生成器和分布进行测试。
- 线性同余发生器(Linear Congruential Engine)
boost::random::linear_congruential_engine<mp_int, 6364136223846793005ull, 1442695040888963407ull> lce;
std::cout << lce() << std::endl;
- 梅森旋转算法(Mersenne Twister)