【发布时间】:2012-03-08 09:48:41
【问题描述】:
我正在尝试使用 boost 来生成 long double 的随机数(在 64 位机器上)。
有时我会使用
rng = boost::mt19937();
但是,编译器认为在 boost/random/mersenne_twister.hpp 的第 88 行,
x[i] = (1812433253UL * (x[i-1] ^ (x[i-1] >> (w-2))) + i) & mask;
有一个隐式转换将 64 位缩短为 32 位值...
我什至没有指定我想要一个长双打还是双打……他为什么要争论这个?是因为我使用的是 64 位操作系统吗?
这个问题有什么简单的解决方法吗?我需要一个长的双发电机... xD
谢谢
【问题讨论】:
标签: c++ boost-random