1
在this answer上,有一個使用boost::multiprecision
和boost::random
的最小示例。boost :: multiprecision中的隨機種子未能編譯
我與掙扎的例子,當我使用的種子:
#include <boost/multiprecision/random.hpp>
#include <boost/random.hpp>
#include <boost/multiprecision/cpp_int.hpp>
#include <boost/multiprecision/cpp_dec_float.hpp>
#include <boost/multiprecision/number.hpp>
int main() {
namespace mp = boost::multiprecision;
boost::uniform_01<mp::cpp_dec_float_50> uf;
boost::random::independent_bits_engine<boost::mt19937, 50L * 1000L/301L, mp::number<mp::cpp_int::backend_type, mp::et_off> > gen;
gen.seed(1); // commenting this line compiles
std::cout << std::setprecision(50);
for (unsigned i = 0; i < 10; ++i) {
std::cout << uf(gen) << std::endl;
}
return 0;
}
其失敗,出現錯誤
/boost/random/detail/seed_impl.hpp:271:9: No member named 'generate' in
'boost::multiprecision::number<boost::multiprecision::backends::cpp_int_backend<
0, 0, 1, 0, std::__1::allocator<unsigned long long> >, 0>'
有誰知道編譯爲什麼是這種情況,我怎樣才能爲種族創造種子R'
序列可以只有一個條目,如'boost :: random :: seed_seq ss = {12 064};'。 [這個答案](http://stackoverflow.com/a/27867521/931303)解釋了爲什麼這是很好的情況。 –