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

Все функции случайных чисел, 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.

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