我使用Mersenne Twister为随机数生成具有1D perlin噪声的2D地形。我的第一个想法是使用Mersenne Twister会在任何给定的硬件上使用相同的种子给我总是相同的结果。但是当我比较不同设备上的值/地形时,它会给我不同的结果。 (它适用于IOS,OSX和MAC,但不适用于WP8)。
代码:
class 1DNoiseTest
{
typedef std::mt19937 MyRNG;
MyRNG rng;
1DNoiseTest( unsigned seed )
{
rng.seed(seed);
std::uniform_real_distribution<double> distribution(0.0,1.0);
for ( unsigned i = 0; i < kMaxVertices; ++i )
{
r[ i ] = ( distribution(rng)); error
}
}
...
我误解Mersenne Twister还是我做错了什么?我怎样才能在每个设备/硬件上获得相同的地形/值?
谢谢你的时间!
答案 0 :(得分:0)
看到这个问题:
C++11 cross compiler/standard library random distribution reproducibility
std :: uniform_real_distribution不保证在不同的编译器中提供相同的结果。