
stats_rand_gen_ipoisson 함수는 Poisson 분포를 생성하는 함수입니다. 이 함수의 인자 중 lamda 값은 평균값을 의미합니다. lamda 값이 2 인 경우, 2를 평균으로 하는 Poisson 분포를 생성해야 합니다.
예를 들어, lamda = 2 인 경우, Poisson 분포를 생성하는 코드는 다음과 같습니다.
#hostingforum.kr
php
function stats_rand_gen_ipoisson($lamda, $n) {
$x = array();
for ($i = 0; $i < $n; $i++) {
$x[] = poisson_distribution($lamda);
}
return $x;
}
function poisson_distribution($lamda) {
$L = exp(-$lamda);
$k_max = 100;
$prob = array();
for ($k = 0; $k <= $k_max; $k++) {
$prob[] = ($L * pow($lamda, $k)) / factorial($k);
}
$prob = array_map(function($value) use ($L) {
return $value + $L;
}, $prob);
$prob = array_map(function($value) use ($prob) {
return $value / array_sum($prob);
}, $prob);
$rand = mt_rand(0, 1000000) / 1000000;
$cum_prob = 0;
for ($k = 0; $k <= $k_max; $k++) {
$cum_prob += $prob[$k];
if ($rand < $cum_prob) {
return $k;
}
}
return $k_max;
}
function factorial($n) {
$result = 1;
for ($i = 2; $i <= $n; $i++) {
$result *= $i;
}
return $result;
}
$lamda = 2;
$n = 10;
$x = stats_rand_gen_ipoisson($lamda, $n);
print_r($x);
이 코드는 lamda = 2 인 경우, 10 번의 시뮬레이션을 통해 생성된 Poisson 분포를 출력합니다.
2025-03-11 21:29