확률 수정 여쭤봐요
본문
복권게임에서 아래와 같은 확률 소스가 있는데요.
// 복권 당첨금 난이도 - 수정
$bok1 = "1000";
$bok2 = "700";
$bok3 = "400";
$bok4 = "300";
$bok5 = "200";
$bok6 = "100";
$bok7 = "20";
$bok8 = "꽝";
$data = array(
$bok5, $bok8, $bok6, $bok7, $bok8, $bok7, $bok8, $bok6,
$bok5, $bok1, $bok8, $bok7, $bok8, $bok7, $bok5, $bok8,
$bok7, $bok8, $bok6, $bok7, $bok3, $bok7, $bok6, $bok8,
$bok7, $bok7, $bok8, $bok4, $bok7, $bok8, $bok3, $bok2,
$bok7, $bok7, $bok8, $bok6, $bok4, $bok7, $bok6, $bok8
);
$random = rand(0, 39);
$po_point = $data[$random];
우선 $random = rand(0, 39); 이 부분이 무엇을 의미하는 지 알고싶고.
두 번째는
$bok5, $bok8, $bok6, $bok7, $bok8, $bok7, $bok8, $bok6,
$bok5, $bok1, $bok8, $bok7, $bok8, $bok7, $bok5, $bok8,
$bok7, $bok8, $bok6, $bok7, $bok3, $bok7, $bok6, $bok8,
$bok7, $bok7, $bok8, $bok4, $bok7, $bok8, $bok3, $bok2,
$bok7, $bok7, $bok8, $bok6, $bok4, $bok7, $bok6, $bok8
이 부분을 두배로 늘려서 7등과 6등을 더 넣고, 1등(bok1)을 빼도 되는지,
그러니까 두배로 늘려서 bok1을 하나만 넣으면 확률을 더 극악화 할 수 있는지
여쭤보고 싶습니다.
답변 4
첫번째로 $random = rand(0, 39); 는 0부터 39까지의 범위에서 무작위로 하나의 숫자를 선택하는 코드이며. 이렇게 선택된 숫자는 배열 $DATA의 인덱스로 사용되어 해당 인덱스의 값을 가져오게 됩니다.
두 번째로, $DATA 배열에는 복권 당첨금 난이도에 해당하는 값들이 포함되어 있습니다. 각각의 값은 $bok1
, $bok2
, $bok3
, ..., $bok8
변수에 할당된 값으로 대응됩니다. 예를 들어, $data[0]
은 $bok5
의 값이고, $data[1]
은 $bok8
의 값입니다.
만약 $data
배열을 두 배로 늘리고, 7등과 6등을 추가하고 1등을 제거한다면, 확률은 극악화될 수 있습니다. 현재 $data
배열은 40개의 요소로 이루어져 있으며, 1등인 $bok1
이 한 번만 나타나며. 만약 두 배로 늘린다면, 배열의 크기는 80이 되고 1등인 $bok1
은 두 번 포함됩니다. 이 경우 1등에 당첨될 확률은 더 낮아지게 됩니다.
또한, 7등과 6등을 추가한다면, 더 많은 꽝($bok8
)과 상대적으로 낮은 당첨금을 가진 등수가 포함되므로, 전체적인 당첨 확률은 더욱 낮아질 것입니다.
따라서 $data
배열을 두 배로 늘리고 1등을 제거하면 확률이 더 극악화될 수 있을 것으로 생각합니다
$random = rand(0, 39);은 0~39에서 랜덤으로 숫자를 하나 가지고 오게됩니다.
위에 랜덤에서 나온 숫자로 $data라서 가지고 오는 거래서 두번째 질문 하신 확률은 직접 계산을 해보셔야 할거 같습니다.
위 내용만이 아닌 다른 부분도 있을거로 생각됩니다만,
배열의 갯수를 늘려 확률을 낮추더라도 운영자의 의도와 관계 없이 1등이 계속 나온다거나 하는 등의 내용은 발생할 수 밖에 없습니다.
따라서 일자별로 구분을 하든, 회차별로 구분을 하든
복권 DB를 구성하여, 해당 복권에 등수별 출현 가능 횟수, 출현 횟수를 보관하여
운영자의 의도를 어느 정도 개입시키는 게 좋아보입니다.
bok을 추가해서 80개 100개로 늘리고
$random = rand(0, 39); $po_point = $data[$random];
이 부분을 그대로 사용한다면 늘리는 것은 아무 의미도 없습니다
그렇게 할 필요 없이 추가는 마음대로 하고 다음처럼 하면 되겠습니다
배열 요소를 섞어서 맨 앞의 요소 또는 아무 것이나 하나 가져오면 됩니다
shuffle($data); shuffle($data);
$po_point = $data[0]; 또는 $po_point = $data[5]; 등