c++11 中的库可移植吗?我避免使用 rand() 因为我听说它不可移植。
你如何定义“便携”?
如果“便携式”的意思是“在给定相同输入的情况下将产生二进制相同的随机数序列”,那么是的,rand
不便携。是的,C++ 随机生成器 http://en.cppreference.com/w/cpp/numeric/random是便携式的(其中大部分。不是std::default_random_engine
or std::random_device http://en.cppreference.com/w/cpp/numeric/random/random_device),因为他们实施specific算法。rand
可以是任何东西,只要它不完全不同于随机数生成器。
话虽这么说,正如 @PeteBecker 指出的那样,分布本身的定义并不那么明确。所以虽然std::mt19937
对于给定的种子,会产生相同的值序列,不同的std::uniform_int_distribution http://en.cppreference.com/w/cpp/numeric/random/uniform_int_distribution对于相同的输入序列和范围,s 可以给出不同的值。
当然,如果您需要一致性,您可以随时定义自己的发行版。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)