이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
시작 후 난수가 반복되는 이유
rand
, randn
, randi
, randperm
등 모든 난수 함수는 공유 난수 생성기에서 값을 추출합니다. MATLAB®을 시작할 때마다 생성기는 디폴트 알고리즘과 시드값을 사용하여 스스로 동일한 상태로 재설정됩니다. 따라서, 난수 생성기에 대한 기본 설정이 동일한 다른 MATLAB 세션을 시작한 직후에 rand(2,2)
와 같은 명령을 실행할 경우 항상 동일한 결과가 반환됩니다. 또한, 난수 함수를 호출하는 모든 스크립트나 함수도 다시 시작할 때마다 동일한 결과를 반환합니다.
처음 MATLAB 세션을 시작하거나 rng("default")
를 호출하면 MATLAB은 디폴트 알고리즘과 시드값을 사용해서 난수 생성기를 초기화합니다. R2023b부터는 MATLAB 기본 설정에서 디폴트 알고리즘과 시드값을 설정할 수 있습니다. 이 기본 설정을 변경하지 않으면 rng
는 이전 릴리스에서처럼 공장 출하값 "twister"
(시드값이 0인 메르센 트위스터 생성기)를 사용합니다. 자세한 내용은 난수 생성기의 디폴트 설정 및 난수 생성기의 재현성 항목을 참조하십시오.
MATLAB을 다시 시작할 때 동일한 난수 배열이 반복되지 않도록 하려면
rand
,randn
,randi
또는randperm
을 호출하기 전에rng("shuffle")
을 사용합니다. 이 명령을 실행하면 이전 MATLAB 세션의 결과를 반복하지 않을 수 있습니다.다시 시작하지 않고 MATLAB 세션이 시작될 때 얻은 결과를 반복하려면
rng("default")
를 사용하여 생성기의 상태를 바꾸어 난수 생성을 처음부터 다시 시작하도록 설정할 수 있습니다.
rng("default")
를 실행하면 그 다음 난수 명령이 난수 생성기에 동일한 디폴트 알고리즘과 시드값을 사용하는 다른 MATLAB 세션의 출력값과 일치하는 결과를 반환합니다.
rng("default");
A = rand(2,2)
A = 0.8147 0.1270 0.9058 0.9134
A
의 값은 난수 생성기에 같은 기본 설정을 사용하여 MATLAB을 다시 시작할 때마다 rand(2,2)
의 출력값과 일치합니다.또는 난수 생성기에 사용되는 시드값과 알고리즘을 지정하여 결과를 반복할 수 있습니다. 예를 들어, 시드값을 1
로 설정하고 생성기 알고리즘을 메르센 트위스터(Mersenne Twister)로 설정합니다.
rng(1,"twister");
난수로 구성된 배열을 만듭니다.
A = rand(2,2)
A = 0.4170 0.0001 0.7203 0.3023
다음으로 새로운 MATLAB 세션에서 같은 명령을 반복하여 배열 A
를 다시 생성합니다.
rng(1,"twister");
A = rand(2,2)
A = 0.4170 0.0001 0.7203 0.3023