2013-05-15 3 views
0

У меня есть программа, которая использует несколько объектов распределения:Случайные распределения числа C++ 11

Like:

станд :: normal_distribution станд :: exponential_distribution

и т.д ..

Должен ли я использовать механизм случайного числа для каждого из них или должен заставить всех из них использовать один и тот же генератор?

ответ

0

Обычно вы хотите, чтобы каждая копия дистрибутива представляла некоррелированную стохастическую переменную, что означает, что для каждого из них должен быть новый движок. Если ваши стохастические переменные будут скоррелированы, вы должны скорее ввести корреляцию самостоятельно, а не повторно использовать случайный движок, чтобы вы могли убедиться, что он правильно смоделирован.

Иногда вы можете обмануть крошечный бит, посеяв только один (и используемый только для этого) случайный движок и использовать его для засева других случайных движков.

Если вы не заботитесь о том, чтобы ваши стохастические переменные некоррелированы (например, вы не занимаетесь научной работой, а программируете игру), вы можете игнорировать это, поскольку это обычно не имеет значения.

0

Обычный ответ, конечно, зависит.

Если вы пытаетесь выполнить работу по симуляции и будете тянуть много случайных чисел, лучше использовать для каждого другой движок. В противном случае это не имеет большого значения.

0

Нет причин использовать несколько двигателей. Если вы собираетесь нарисовать МНОГО случайных чисел, и вы думаете, что результаты будут скоррелированы, измените двигатель на один с большей длиной цикла.

Смежные вопросы