Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP mt_rand() 함수 완벽 가이드 – 메르센 트위스터 난수 생성기


정의 및 사용법

함수 이름에 붙은 'mt' 접두사는 메르센 트위스터(Mersenne Twister)를 의미합니다. mt_rand() 함수는 메르센 트위스터 난수 생성 알고리즘을 사용하여 정수를 반환하는 함수로, PHP의 rand() 함수를 완전히 대체할 수 있는 드롭인(drop-in) 함수입니다.

기본 범위는 0부터 플랫폼마다 다른 mt_getrandmax() 값까지이며, 64비트 Windows 운영체제에서는 최대 2147483647까지 반환됩니다. mt_rand() 함수는 인자 없이 호출할 수도 있고(이 경우 기본 범위가 적용됨), minmax 매개변수를 직접 지정하여 호출할 수도 있습니다.

이 함수는 항상 정수(integer)를 반환한다는 점에 유의하세요.

구문

mt_rand ( void ) : int
mt_rand ( int $min , int $max ) : int

매개변수

번호매개변수 및 설명
1min
난수를 반환할 범위의 하한값입니다. 기본값은 0입니다.
2max
난수를 반환할 범위의 상한값입니다. 기본값은 mt_getrandmax()입니다.

반환 값

PHP mt_rand() 함수는 메르센 트위스터 난수 생성 기술을 사용하여 minmax 사이의 정수를 반환합니다. 이 함수는 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() 함수에 minmax 인자를 지정하여 해당 범위 내의 난수를 반환받습니다.

<?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: 실수형 인자 처리

minmax 매개변수에 실수(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