boost::random::xoshiro512d
// In header: <boost/random/xoshiro.hpp> class xoshiro512d { public: // public member functions std::uint64_t next_int() noexcept; result_type next() noexcept; // public static functions static constexpr min() noexcept; static constexpr max() noexcept; };
这是 xoshiro512+ 1.0,我们用于生成具有更大状态大小的浮点数的生成器。 我们建议使用它的高位来生成浮点数,因为它比 xoshiro512** 略快。 它通过了我们所知的所有测试,除了最低的三位,它们可能会在线性测试中失败(仅此而已),因此如果低线性复杂度不被认为是问题(通常情况下),它也可以用于生成 64 位输出。
我们建议使用符号测试来提取随机布尔值,并使用右移来提取位子集。
状态必须进行初始化,使其不全为零。如果您有一个 64 位种子,我们建议初始化一个 splitmix64 生成器,并使用其输出填充 s。