php 난수 에 대한 깊 은 이해

2545 단어 php난수
php mt_srand 다음 더 좋 은 난수 발생 기 피 드 mtsrand(PHP 3 >= 3.0.6, PHP 4, PHP 5)mt_srand--더 좋 은 난수 발생 기 피 드 설명

void mt_srand ( int seed )
을 seed 로 난수 발생 기 에 파종 합 니 다.PHP 4.2.0 버 전부터 seed 매개 변 수 는 옵션 으로 변 경 됩 니 다.이 항목 이 비어 있 을 때 수시로 설 정 됩 니 다.예 1.mtsrand()범례

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><?php
// seed with microseconds
function make_seed()
{
    list($usec, $sec) = explode(' ', microtime());
    return (float) $sec + ((float) $usec * 100000);
}
mt_srand(make_seed());
$randval = mt_rand();
?>
주:PHP 4.2.0 부터 srand()또는 mt 를 사용 하지 않 아 도 됩 니 다.srand()함수 가 난수 발생 기 에 파종 하여 현재 자동 으로 완성 되 었 습 니 다.mt 참조rand(),mt_getrandmax()와 srand(). PHP mt_rand()함수 정의 및 용법 mtrand()는 Mersenne Twister 알고리즘 을 사용 하여 무 작위 정 수 를 되 돌려 줍 니 다.문법

mt_rand(min,max)
설명 선택 가능 한 인자 min 과 max,mt 를 제공 하지 않 으 면rand()0 을 RAND 로 되 돌려 줍 니 다.맥 스 사이 의 위조 난수.예 를 들 어 5 에서 15(5 와 15 포함)사이 의 무 작위 수 를 mt 로rand(5, 15)。많은 오래된 libc 의 난수 발생 기 는 불확실 하고 알 수 없 는 특성 을 가지 고 있 으 며 매우 느리다.PHP 의 rand()함 수 는 기본적으로 libc 난수 발생 기 를 사용 합 니 다.mt_rand()함 수 는 비공 식적 으로 그것 을 교체 하 는 데 쓰 인 다.이 함 수 는 Mersenne Twister 에서 알려 진 특성 을 난수 발생 기로 사 용 했 으 며,libc 가 제공 하 는 rand()보다 무 작위 수치의 평균 속도 가 4 배 빠르다.알림 과 주석:PHP 4.2.0 부터 srand()또는 mt 를 사용 하지 않 아 도 됩 니 다.srand()함수 가 난수 발생 기 에 파종 되 었 습 니 다.현재 자동 으로 완성 되 었 습 니 다.주석:3.0.7 이전 버 전에 서 max 의 의 미 는 range 입 니 다.이 버 전에 서 상례 와 같은 5 에서 15 의 무 작위 수 를 얻 으 려 면,간단 한 예 는 mt 입 니 다.rand (5, 11)。 예 를 들 어 본 사례 에서 우 리 는 랜 덤 수 를 되 돌려 줄 것 이다.

<?phpecho(mt_rand());
echo(mt_rand());
echo(mt_rand(10,100));
?>
수출 유사:31509062885132897835   메모:위의 이 함수 가 제시 한 무 작위 정수,숫자 이외 의 문 자 는 나 오지 않 습 니 다.다른 문자 가 발생 하려 면 다른 사용자 정의 방법 이 필요 합 니 다.다음 과 같 습 니 다.

<?php
/*
 * $length:
 * $type:
 * */
function random($length, $type = "") {
    $chars = !$type ? "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz" : "0123456789abcdef";
    $max = strlen($chars) - 1;
    mt_srand((double)microtime() * 1000000);
    for($i = 0; $i < $length; $i++) {
        $string .= $chars[mt_rand(0, $max)];
    }
    return $string;
}
$var=random(32,'haha');
echo($var);
?>
출력:fe61e 294 e5f 46437 cb3a92b 92643 ead 6

좋은 웹페이지 즐겨찾기