메뉴 건너뛰기

프로그램언어

2018.10.27 03:32

PHP 랜덤확률 구하기

조회 수 4764 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

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

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

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


// 지정확률로 당첨 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자리까지 반환됨



List of Articles
번호 제목 날짜 조회 수
120 fileatime 파일에 최종적으로 접근한 시간을 반환 2016.12.23 18117
119 headers_sent 헤더 전송 여부를 확인 2016.12.23 19409
118 gd_info 사용 가능한 GD 라이브러리에 대한 정보를 배열로 반환 2016.12.23 17989
117 glob 현재 디렉토리에서 pattern에 일치하는 경로 이름을 배열로 반환 2016.12.23 19637
116 array_push 배열 끝에 하나 이상의 요소를 추가 2016.12.23 21604
115 quotemeta 모든 메타 문자앞에 역슬래쉬를 붙인 문자열을 반환 2016.12.23 20461
114 array_key_exists 배열에서 key가 존재하는지 확인 2016.12.23 22206
113 call_user_func 사용자가 정의한 함수를 호출하여 실행고자 할 때 사용 2016.12.23 21305
112 mysql_real_escape_string 이진 데이터를 입력할 경우 이 함수를 사용해야 함 2016.12.23 18640
111 class_exists 클래스가 정의되었는지 확인 2016.12.23 19881
110 ini_get - php.ini에 지정되어 있는 지시어의 값을 읽어온다 2016.12.23 19520
109 is_array — 변수가 배열인지 확인 2016.12.23 18048
108 mysql_affected_rows — 최근 MySQL 작업으로 변경된 행 개수를 얻음 2016.12.23 18807
107 parse_ini_file — Parse a configuration file 2016.12.23 19774
106 mysql_result — 결과 데이터를 반환 2016.12.23 18967
105 mysql_insert_id 2016.12.23 18752
104 implode — 문자열로 배열 원소를 결합 2016.12.23 19951
103 stripcslashes — addcslashes()로 인용한 문자열을 되돌림 2016.12.23 20458
102 stripslashes — 따옴표 처리한 문자열을 풉니다 2016.12.23 20486
101 addslashes — 문자열을 슬래시로 인용 2016.12.23 23083
Board Pagination Prev 1 ... 7 8 9 10 11 12 13 14 15 16 17 Next
/ 17

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved