최소값과 최대 값을 기준으로 난수를 생성하는 방법이 있습니까?
예를 들어, min이 1이고 max 20이라면 1과 20을 포함하여 1과 20 사이의 숫자를 생성해야합니까?
답변
<?php
$min=1;
$max=20;
echo rand($min,$max);
?>
답변
새로운 PHP7 에서는 마지막으로 암호 학적으로 안전한 의사 난수 정수를 지원합니다.
int random_int ( int $min , int $max )
random_int — 암호 학적으로 안전한 의사 난수 정수를 생성합니다.
기본적으로 이전 답변을 쓸모 없게 만듭니다.
답변
빠른 빠른 버전 사용에는, mt_rand 것입니다 :
$min=1;
$max=20;
echo mt_rand($min,$max);
출처 : http://www.php.net/manual/en/function.mt-rand.php .
참고 : 이 작업을 수행하려면 서버에 Math PHP 모듈이 활성화되어 있어야합니다. 그렇지 않은 경우 호스트를 버그로 사용하여 활성화하거나 일반 (그리고 더 느린) rand ()를 사용해야합니다.
답변
답변
여기에 답변을 묶어 버전을 독립적으로 만들었습니다.
function generateRandom($min = 1, $max = 20) {
if (function_exists('random_int')):
return random_int($min, $max); // more secure
elseif (function_exists('mt_rand')):
return mt_rand($min, $max); // faster
endif;
return rand($min, $max); // old
}
답변
rand(1,20)
PHP의 rand 함수용 문서는 다음과 같습니다.
http://php.net/manual/en/function.rand.php
사용 srand()
난수 생성기의 시드 값을 설정하는 기능.
답변
이걸로 해봐. 귀하의 희망에 따라 ID를 생성합니다.
function id()
{
// add limit
$id_length = 20;
// add any character / digit
$alfa = "abcdefghijklmnopqrstuvwxyz1234567890";
$token = "";
for($i = 1; $i < $id_length; $i ++) {
// generate randomly within given character/digits
@$token .= $alfa[rand(1, strlen($alfa))];
}
return $token;
}