[연재3] 로또 - 확률에 확률 높이기 정보
[연재3] 로또 - 확률에 확률 높이기
본문
예제 : http://gnu.pe.hu/lotto2.php
2장 사면 두배, 3장사면 3배 보다 더 확률이 높겠냐만은 확률 높은 숫자를 뽑아
유니크한 숫자군을 다시 확률 높게 뽑아 소팅하자
<?
echo '[예제3]<p>';
// 45개의 각 숫자를 확률로 표시
$arr = Array(
10, 5, 10, 7, 5, 10, 2, 2, 2, 2,
10, 5, 5, 7, 5, 10, 2, 2, 2, 2,
10, 5, 5, 7, 5, 10, 2, 2, 2, 2,
10, 5, 5, 7, 5, 10, 2, 2, 2, 2,
10, 5, 5, 7, 10
);
$arr2 = Array();
foreach($arr as $key => $value)
{
for($i=0; $i<$value; $i++)
{
$arr2[] = $key + 1;
}
}
/*
// _unique($arr2) 를 하면 확률에 의한 유니크 숫자가
print_r(_unique($arr2));
// 이렇게 표시
Array
(
[0] => 5
[1] => 8
[2] => 12
[3] => 18
[4] => 41
[5] => 43
)
*/
$limit = 1000; // 유니크한 로또번호 개수
$maxs = 10; // 최종 가져올 로또번호 개수
$arr3 = Array();
for($k=0; $k<$limit; $k++)
$arr3[] = implode(',', _unique($arr2));
echo '확률만큼 유니크한 로또 보이기 '. number_format($limit) .'개 ($limit 는 많을 수록 좋다.) <p>';
// 중복된 값만
$arr3 = array_count_values($arr3);
// 배열을 내림차순 정렬하고 인덱스의 상관관계를 유지
arsort($arr3);
// maxs 개만 가져오기
$arr3 = array_slice($arr3, 0, $maxs);
print_r($arr3);
echo '<p><b>최종 로또 ' . $maxs . '개 값</b></p>';
$j = 0;
foreach($arr3 as $key => $value)
{
echo '<p><b>' . ++$j .'.</b> ' . $key . '</p>';
}
echo '<hr />';
echo '[예제4]<p>';
// 확률로 보는 배열들
print_r($arr2);
// 유니크한 번호
function _unique($a) {
shuffle($a);
$a = array_unique($a);
array_splice($a, 6);
sort($a);
return $a;
}
?>
다음연재 : 실제 당첨된 로또 번호로 마무리
0
댓글 0개