NAVER

질문 c++(or c언어) 몬테카를로 적분 좀 도와주세요
dbsg**** 조회수 591 작성일2015.12.15

가우스 분포(정규분포)를 몬테카를로 적분으로 확률구하는 프로그램 좀 만들어주세요ㅠㅠ 적분 범위는 +-3시그마입니다. 아무리 해도 확률이 제대로 안나옵니다.

프로필 사진

답변자님,

정보를 공유해 주세요.

1 개 답변
1번째 답변
프로필 사진
hann****
영웅
C, C++ 분야에서 활동
본인 입력 포함 정보

#define _CRT_RAND_S
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

const double pi = 3.1415926536;;
const double e = 2.7182818285;

double function(double x)
{
 double fout = 1. / sqrt(2 * pi)*pow(e, -x*x);
 return fout;
}


int main()
{
 unsigned int rValue;
 int i;
 double sum = 0.;
 double x;
 double probalility;
 for (i = 0; i < 100000; i++){
  rand_s(&rValue);
  rValue %= 60001;
  x = (signed(rValue) - 30000) / 10000.;
  sum += function(x);
 }

 probalility = sum * 6 / 100000.;
 printf("%lf\n", probalility);

 return 0;
}

2015.12.15.

  • 채택

    질문자가 채택한 답변입니다.

도움이 되었다면 UP 눌러주세요!
UP이 많은 답변일수록 사용자들에게 더 많이 노출됩니다.