개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.03.11 21:28

stats_rand_gen_ipoisson 함수에 대한 질문

목록
  • 애자일광신도 14일 전 2025.03.11 21:28
  • 15
    1
제가 현재 수학 관련 과제에서 Poisson 분포를 구현하고 있습니다.
stats_rand_gen_ipoisson 함수를 사용하여 이산 확률 분포를 생성하려고 합니다.
이 함수의 인자 중 lamda 값에 대한 설명을 구하고 싶습니다.
lamda 값이 어떤 의미를 가지는지 궁금합니다.

예를 들어, lamda = 2 인 경우에 Poisson 분포를 어떻게 생성해야 하는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  14일 전



    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

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 6,353건 / 221 페이지

검색

게시물 검색