값 출력
이 마지막 단계에서는 정규 분포 PDF 프로그램에 더 자세한 출력 형식 및 시각화 옵션을 추가하여 개선합니다.
normal_pdf.c 파일을 업데이트합니다.
nano ~/project/normal_pdf.c
이전 내용을 다음과 같이 바꿉니다.
#include <stdio.h>
#include <math.h>
double compute_normal_pdf(double x, double mean, double std_dev) {
double pi = 3.14159265358979323846;
double coefficient = 1.0 / (std_dev * sqrt(2 * pi));
double exponent = -pow(x - mean, 2) / (2 * pow(std_dev, 2));
return coefficient * exp(exponent);
}
void print_pdf_details(double x, double mean, double std_dev, double pdf) {
printf("\n--- 정규 분포 PDF 상세 정보 ---\n");
printf("점 (x) : %.2f\n", x);
printf("평균 (μ) : %.2f\n", mean);
printf("표준 편차 (σ) : %.2f\n", std_dev);
printf("확률 밀도 (f(x)) : %.6f\n", pdf);
// PDF 값에 대한 해석 추가
if (pdf > 0.3) {
printf("해석: 높은 확률 밀도\n");
} else if (pdf > 0.1) {
printf("해석: 중간 확률 밀도\n");
} else {
printf("해석: 낮은 확률 밀도\n");
}
}
int main() {
double x, mean, std_dev, pdf;
printf("정규 분포 확률 밀도 함수 계산기\n");
printf("점 x 를 입력하세요: ");
scanf("%lf", &x);
printf("평균 (μ) 를 입력하세요: ");
scanf("%lf", &mean);
printf("표준 편차 (σ) 를 입력하세요: ");
scanf("%lf", &std_dev);
// PDF 계산
pdf = compute_normal_pdf(x, mean, std_dev);
// 상세 결과 출력
print_pdf_details(x, mean, std_dev, pdf);
return 0;
}
프로그램을 컴파일합니다.
gcc ~/project/normal_pdf.c -o ~/project/normal_pdf -lm
프로그램을 실행합니다.
~/project/normal_pdf
예시 출력:
정규 분포 확률 밀도 함수 계산기
점 x를 입력하세요: 2.5
평균 (μ)를 입력하세요: 0
표준 편차 (σ)를 입력하세요: 1
--- 정규 분포 PDF 상세 정보 ---
점 (x) : 2.50
평균 (μ) : 0.00
표준 편차 (σ) : 1.00
확률 밀도 (f(x)) : 0.017528
해석: 낮은 확률 밀도
이 구현의 주요 개선 사항:
- 형식화된 출력을 위해 전용 함수
print_pdf_details()를 추가했습니다.
- PDF 값에 대한 간단한 해석을 포함했습니다.
- 설명적인 제목으로 사용자 인터페이스를 개선했습니다.
- 이전 단계에서의 핵심 PDF 계산 논리를 유지했습니다.