포아송 확률 구하기
2개의 함수 이용
함수에서 다른 함수 이용
PROGRAM Pois_Pro
IMPLICIT NONE
REAL :: AveOccurs, Probability
INTEGER :: NumOccurs
PRINT *, "포아송 확률을 계산합니다."
WRITE (*, '(1X, A)', ADVANCE = "NO"), "단위 시간 동안 평균 발생 횟수(3.5) : "
READ *, AveOccurs
WRITE (*, '(1X, A)', ADVANCE = "NO"), "발생 횟수(5) : "
READ *, NumOccurs
Probability = Poisson(AveOccurs, NumOccurs)
PRINT '(1X, "포아송 확률 = ", F6.4)', Probability
CONTAINS
FUNCTION Poisson(Lamda, N)
REAL :: Poisson ! 리턴한 값의 타입
REAL, INTENT(IN) :: Lamda ! 받는 인수의 타입
INTEGER, INTENT(IN) :: N
Poisson = (Lamda ** N * EXP(-Lamda)) / REAL(Factorial(N))
END FUNCTION Poisson
FUNCTION Factorial(N)
INTEGER :: Factorial, I
INTEGER, INTENT(IN) :: N
Factorial = 1
DO I = 2, N
Factorial = Factorial * I
END DO
END FUNCTION Factorial
END PROGRAM Pois_Pro
위 소스를 06_02_Pois_Pro.f95로 저장
컴파일 및 프로그램 테스트
'Programming > Fortran' 카테고리의 다른 글
온도 변환(Module 이용) (0) | 2008.09.04 |
---|---|
사다리꼴 적분 근사법(함수 이용) (0) | 2008.09.03 |
온도 변환(함수 - 내부 부프로그램) (0) | 2008.09.03 |
회귀 분석(파일 처리, 입력 서식 지정) (0) | 2008.09.02 |
출력 서식 지정 (0) | 2008.08.29 |