PHP 랜덤확률 구하기

by 조쉬 posted Oct 27, 2018
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

경품이나 사은품 증정 같은 이벤트를 당첨방식으로 구현시 

지정된 확률범위내에서 당첨인지 아닌지의 여부를 반환하는 함수를 작성해 보았다.


// 지정확률로 당첨 fn(00.00%) return bool

function probability($p) {

    $n = 0;

    $t = 0;

    $c = 0;


    $n = $p * 10000;

    if ($n > 1000000) $n = 1000000;

    if ($n < 1) $n = 0;


    $t = mt_rand(0, 1000000);

    if ($t <= $n) $c = 1;


    return $c;

}


echo probability(15.25); // 15.25%의 확률로 1이 반환됨




확률 자체를 랜덤으로 구할 필요가 있을 경우 0~100의 범위에서 랜덤으로 반환하도록 하였다.


// 랜덤확률값 return 00.00%

function random_probability_rate() {

    $t = 0;


    $t = mt_rand(0, 1000001);


    return round($t / 10000, 2);

}


echo random_probability_rate(); // 0~100범위의 아무 값이나 소수 2자리까지 반환됨