MKL Intel C++ и генератор квазислучайных чисел

Я использую MKL Intel для вычисления случайных чисел. Я использую квазислучайный алгоритм. Кроме того, мне кажется, что генерируемые числа вовсе не случайны. Я понимаю, что квазислучайный алгоритм будет предоставлять выборочные точки, которые максимизируют занимаемое пространство. Таким образом, они не должны быть совершенно неожиданными и случайными, а только должным образом покрывать пространство.

Я хотел бы использовать это число случайным образом, чтобы они не упорядочивались ожидаемым образом, поэтому, прежде чем использовать эти «случайные» точки, я переставляю их.

Я неправильно использую библиотеку MKL? Или это звучит нормально, потому что, как я уже говорил, точки должны покрывать все пространство, а не быть совершенно случайными?

Если какой-то MKL или квазислучайный gen. пользователи есть, советы приветствуются.

С Уважением.


person kiriloff    schedule 07.05.2012    source источник


Ответы (1)


Теоретически случайная перестановка любой равномерно распределенной последовательности должна приводить к случайной выборке. Возьмите 1, 2, 3, ..., n, например, и переставьте их случайным образом, и вы получите случайную равномерную выборку.

Качество алгоритма случайной перестановки становится жизненно важным для качества результирующей выборки.

При этом мне интересно, зачем вообще нужен квазислучайный ГСЧ от MKL. Для меня это выглядит немного перебором. Если вам нужна хорошая псевдослучайная последовательность, возможно, имеет смысл использовать другие ГСЧ из MKL, например. MT19937 или MT2203 или SFMT19937, которые работают быстро и имеют высокое качество. Не могли бы вы объяснить, почему вам нужна квазислучайная последовательность в качестве основы для перестановки?

С уважением, Сергей

person Sergey Maidanov    schedule 10.05.2012
comment
Мне не нужен генератор случайных чисел в качестве основы для перестановки. Дело не в этом. Я использую квазислучайный генератор MKL и замечаю, что он всегда возвращает числа в одной и той же последовательности (например, когда я выбираю один и тот же заданный интервал). Интересно, ожидается ли такое поведение для такого генератора (который не является «случайным» в собственном смысле), или я не правильно использую MKL здесь. Благодарность - person kiriloff; 15.05.2012