Сгенерируйте случайные числа, которые отличаются

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

Все функции случайных чисел, randrandnrandi, и randperm, чертите значения от разделяемого генератора случайных чисел. Каждый раз, когда вы запускаете MATLAB, генератор сбрасывает себя к тому же состоянию. Поэтому команда, такая как rand(2,2) возвращает тот же результат любое время, вы выполняете его сразу после запуска. Кроме того, любой скрипт или функция, которая вызывает функции случайных чисел, возвращают тот же результат каждый раз, когда вы перезапускаете.

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

Выполните rng('shuffle') команда однажды в вашем сеансе работы с MATLAB прежде, чем вызвать любую из функций случайных чисел.

rng('shuffle')

Можно выполнить эту команду в Окне Команды MATLAB, или можно добавить его в файл запуска, который является специальным скриптом, который MATLAB выполняет каждый раз, когда вы перезапускаете.

Теперь выполните команду случайных чисел.

A = rand(2,2);

Каждый раз вы вызываете rng('shuffle'), это пересевает генератор с помощью различного seed на основе текущего времени.

В качестве альтернативы задайте различные seed явным образом. Например,

rng(1);
A = rand(2,2);
rng(2);
B = rand(2,2);

Массивы A и B отличаются, потому что генератор инициализируется различным seed перед каждым вызовом rand функция.

Примечание

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

Смотрите также

Похожие темы