정의 및 사용법
함수 이름에 붙은 'mt' 접두사는 메르센 트위스터(Mersenne Twister)를 의미합니다. mt_rand() 함수는 메르센 트위스터 난수 생성 알고리즘을 사용하여 정수를 반환하는 함수로, PHP의 rand() 함수를 완전히 대체할 수 있는 드롭인(drop-in) 함수입니다.
기본 범위는 0부터 플랫폼마다 다른 mt_getrandmax() 값까지이며, 64비트 Windows 운영체제에서는 최대 2147483647까지 반환됩니다. mt_rand() 함수는 인자 없이 호출할 수도 있고(이 경우 기본 범위가 적용됨), min과 max 매개변수를 직접 지정하여 호출할 수도 있습니다.
이 함수는 항상 정수(integer)를 반환한다는 점에 유의하세요.
구문
mt_rand ( void ) : int mt_rand ( int $min , int $max ) : int
매개변수
| 번호 | 매개변수 및 설명 |
|---|---|
| 1 | min 난수를 반환할 범위의 하한값입니다. 기본값은 0입니다. |
| 2 | max 난수를 반환할 범위의 상한값입니다. 기본값은 mt_getrandmax()입니다. |
반환 값
PHP mt_rand() 함수는 메르센 트위스터 난수 생성 기술을 사용하여 min과 max 사이의 정수를 반환합니다. 이 함수는 rand() 함수보다 약 4배 빠른 성능을 제공합니다. 다만, 보안성이 중요한 암호화(cryptographic) 용도로 사용하는 것은 권장되지 않습니다. 암호학적으로 안전한 난수가 필요하다면 random_int()나 random_bytes() 함수를 사용하는 것이 좋습니다.
PHP 버전
이 함수는 PHP 4.x, PHP 5.x, 그리고 PHP 7.x 버전에서 모두 사용할 수 있습니다.
예제 1: 인자 없이 호출하기
다음 예제는 mt_rand()를 인자 없이 호출하여 난수를 반환받습니다.
<?php echo "매개변수 없이 호출한 mt_rand() = " . mt_rand() . "\n"; echo "또 다른 매개변수 없는 mt_rand() = " . mt_rand() . "\n"; ?>
출력 결과
난수 특성상 실행할 때마다 다른 값이 출력될 수 있습니다.
random number with no parameters mt_rand() = 173620951 another random number with no parameters mt_rand() = 749065865
예제 2: min과 max 지정하기
다음 예제는 mt_rand() 함수에 min과 max 인자를 지정하여 해당 범위 내의 난수를 반환받습니다.
<?php echo "mt_rand(11,30) = " . mt_rand(11,30) . "\n"; echo "mt_rand(11,30) = " . mt_rand(11,30) . "\n"; ?>
출력 결과
실행할 때마다 11부터 30 사이의 서로 다른 값이 출력될 수 있습니다.
mt_rand(11,30) = 24 mt_rand(11,30) = 14
예제 3: 실수형 인자 처리
min과 max 매개변수에 실수(float) 값을 전달하면 소수점 이하 부분은 무시됩니다.
<?php echo "mt_rand(10.55,50.95) = " . mt_rand(10.55, 50.95) . "\n"; ?>
출력 결과
소수점이 제거된 10부터 50 사이의 정수가 반환됩니다.
mt_rand(10.5,50.95) = 31