Я генерирую 2D-территорию с 1D-шумом перлина, используя Mersenne Twister для случайных чисел. Моя первая мысль заключалась в том, что использование 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 или делаю что-то не так? Как я могу получить одинаковую местность/значения на каждом устройстве/оборудовании?
Спасибо за ваше время!
CRnd
, на который вы ссылаетесь, напротив, имеет нестандартный (и просто ужасный) API. - person Konrad Rudolph   schedule 13.05.2015