Почему случайные числа повторяются после запуска?

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

Если вы не хотите повторять те же массивы случайных чисел, когда MATLAB перезапускает, то выполните команду,

rng('shuffle');
прежде, чем вызвать rand, randn, randi или randperm. Эта команда гарантирует, чтобы вы не повторяли результат предыдущего сеанса работы с MATLAB.

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

rng('default');
Когда вы выполняете rng('default'), следующие команды случайных чисел возвращают результаты, которые совпадают с выводом нового сеанса работы с MATLAB. Например,
rng('default');
A = rand(2,2)
A =

    0.8147    0.1270
    0.9058    0.9134
Значения в A совпадают с выводом rand(2,2) каждый раз, когда вы перезапускаете MATLAB.

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

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