sql 몬테카를로 알고리즘

2023. 12. 31. 00:41DB/SQLQuery

반응형
select sum(case when (power(num1,2) + power(num2,2))<=1 then 1
    else 0 end) /100000 * 4 as "원주율"
from ( select dbms_random.value(0,1) as num1, --0 1 사이 난수
              dbms_random.value(0,1) as num2 --0 1 사이 난수
        from dual
        
    connect by level < 100000
    
    );

카지노로 유명한 모나코의 도시 몬테카를로 
수소폭탄 개발 알고리즘
 
난수를 생성하여 통계적인 수치를 얻기 위한 시뮬레이션,  프로젝트의 정량적 리스크 분석 기법으로 이용되기도 한다.
정해진 규칙 없이 무작위수를 활용하여 함수의 값을 확률 적인 방법을 활용하여 통계적으로 계산한다.
실제로 계산하는 식을 찾기 어려운 경우 활용하기에 적합하다. 정확한 값보다는 근사적인 결과를 얻을 수 있으며 실험 데이터가 많아질수록 실제 값에 더욱 근사하는 결과를 얻을 수 있습니다.


작업의 확률 분포로부터 표본을 반복 추출하는 계산이다.

랜덤 값의 분포에서 원의 넓이를 추정 
난수가 많아질수록 원주율 3.14에 근사하게 된다.
 



그 단계는


반응형

'DBMS > SQLQuery' 카테고리의 다른 글

집계 함수와 윈도우 함수  (0) 2024.03.03
NVL NVL2  (0) 2024.02.24
행 제한절 FETCH FIRST OFFSET  (0) 2024.01.02
sql 피타고라스 정리 문제  (0) 2023.12.30
데이터 순위로 출력  (0) 2023.12.30