Math mt_rand
(PHP 4, PHP 5, PHP 7, PHP 8)
mt_rand — Mersenne Twister 난수 생성기를 통해 난수 생성
설명
mt_rand(): int
mt_rand(int $min
, int $max
): int
주의 이 함수는 암호화된 보안 값을 생성하지 않으며 암호화 목적으로 사용해서는 안 됩니다. 암호학적으로 안전한 값이 필요한 경우 random_int(), random_bytes() 또는 openssl_random_pseudo_bytes()를 대신 사용하는 것이 좋습니다.
이전 libcs의 많은 난수 생성기는 모호하거나 알 수 없는 특성을 가지며 느립니다. mt_rand() 함수는 이전 rand()에 대한 드롭인 대체입니다. » Mersenne Twister를 사용하여 알려진 특성을 가진 난수 생성기를 사용합니다. 이 생성기는 평균 libc rand()가 제공하는 것보다 4배 더 빠르게 난수를 생성합니다.
선택적 min
없이 호출되면 max
인수 mt_rand()는 0과 mt_getrandmax() 사이의 의사 난수 값을 반환합니다. 예를 들어 5에서 15(포함) 사이의 난수를 원하면 mt_rand(5,
15)
를 사용하십시오.
매개변수
min
- 반환할 선택적인 가장 낮은 값(기본값: 0)
max
- 반환될 선택적인 가장 높은 값(기본값: mt_getrandmax())
반환 값
min
(또는 0)과 max
(또는 mt_getrandmax(), 포함) 사이의 임의의 정수 값 또는 max
가 min
보다 작은 경우 false
입니다.
변경 로그
버전 | 설명 |
---|---|
7.2.0 | mt_rand()는 모듈로 편향 버그에 대한 버그 수정을 받았습니다. 이는 특정 시드로 생성된 시퀀스가 64비트 시스템의 PHP 7.1과 다를 수 있음을 의미합니다. |
7.1.0 | rand()는 mt_rand()의 별칭이 되었습니다. |
7.1.0 | mt_rand()는 Mersenne Twister 알고리즘의 수정된 올바른 버전을 사용하도록 업데이트되었습니다. 이전 동작으로 돌아가려면 두 번째 매개변수로 MT_RAND_PHP 와 함께 mt_srand()를 사용하십시오. |
Examples
예제 #1 mt_rand() 예제
<?php
echo mt_rand() . "\n";
echo mt_rand() . "\n";
echo mt_rand(5, 15);
?>
위의 예는 다음과 유사한 결과를 출력합니다.
1604716014 1478613278 6
메모
경고 min
max
범위는 mt_getrandmax() 범위 내에 있어야 합니다. 즉, (max
- min
) <= mt_getrandmax() 그렇지 않으면 mt_rand()가 예상보다 낮은 난수를 반환할 수 있습니다.
기타
- mt_srand() - 메르센 트위스터 난수 생성기 시드
- mt_getrandmax() - 가능한 가장 큰 임의 값 표시
- random_int() - 암호학적으로 안전한 의사 난수 정수 생성
- random_bytes() - 암호학적으로 안전한 의사 난수 바이트 생성
- openssl_random_pseudo_bytes() - 의사 난수 바이트 문자열 생성
- rand() - 임의의 정수 생성