1D噪音使用梅森捻线机在不同的设备上给出不同的结果

时间:2015-05-11 20:04:13

标签: c++ random srand

我使用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还是我做错了什么?我怎样才能在每个设备/硬件上获得相同的地形/值?

谢谢你的时间!

1 个答案:

答案 0 :(得分:0)

看到这个问题:

C++11 cross compiler/standard library random distribution reproducibility

std :: uniform_real_distribution不保证在不同的编译器中提供相同的结果。