정의 및 사용법
함수 이름에 붙은 접두사 'mt'는 메르센 트위스터(Mersenne Twister)를 의미합니다. mt_srand() 함수는 메르센 트위스터 난수 생성기(random number generator)에 시드(seed)를 설정하는 데 사용됩니다. 시드를 지정하면 난수 생성기가 초기화되어 이후 생성되는 난수의 기준점이 만들어집니다.
대부분의 난수 생성기는 사용 전에 초기 시드 설정이 필요하지만, PHP에서는 mt_srand() 호출이 자동으로 수행되므로 개발자가 직접 호출하는 것은 선택 사항입니다.
이 함수는 어떠한 값도 반환하지 않습니다(void).
구문
mt_srand ([ int $seed [, int $mode = MT_RAND_MT19937 ]] ) : void
매개변수
| 번호 | 매개변수 및 설명 |
|---|---|
| 1 | seed 난수 생성기의 시드로 사용할 정수값입니다. 생략할 경우 임의의 값이 자동으로 지정됩니다. |
| 2 | mode 아래 상수 중 하나를 사용하여 동작 방식을 지정합니다. MT_RAND_MT19937: 고정된 메르센 트위스터 구현을 사용합니다. MT_RAND_PHP: PHP의 기본(레거시) 구현을 사용합니다. |
반환 값
이 함수는 어떤 값도 반환하지 않습니다.
PHP 버전
이 함수는 PHP 4.x, PHP 5.x, 그리고 PHP 7.x 버전에서 모두 사용할 수 있습니다.
예제 1: 고정된 시드로 초기화하기
다음 예제는 rand() 계열 함수를 사용하기 전에 난수 생성기를 먼저 초기화하는 방법을 보여줍니다.
<?php
mt_srand(5);
echo "mt_rand(1,100)=", mt_rand(1,100);
?>
출력 결과
실행하면 다음과 같은 결과가 출력될 수 있습니다.
mt_rand(1,100)=12
동일한 시드를 사용하면 항상 같은 난수 시퀀스가 생성되므로, 위 코드는 실행할 때마다 같은 값을 반환합니다. 이러한 특성은 테스트나 재현 가능한 결과가 필요한 경우에 유용합니다.
예제 2: 현재 타임스탬프로 초기화하기
다음 예제는 현재 시간(time())을 시드로 사용하여 난수 생성기를 초기화합니다.
<?php
mt_srand(time());
echo "mt_rand()=", mt_rand();
?>
출력 결과
실행 시점에 따라 다음과 유사한 결과가 출력됩니다.
mt_rand()=548287992
time() 함수를 시드로 사용하면 실행 시점마다 다른 값이 지정되므로, 매번 서로 다른 난수를 얻을 수 있습니다.