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

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

Все функции случайных чисел, rand, randn, randi, и 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 или прежде чем вы выполните большое вычисление, включающее случайные числа. Однако пересев генератора слишком часто в сеансе не является хорошей идеей, потому что на статистические свойства ваших случайных чисел можно оказать негативное влияние.

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

Связанные примеры

Больше о

Была ли эта тема полезной?