확률 계산기
단일 사건, 복합(AND/OR), 조건부, 최소 한 번 확률을 계산합니다.
이 도구 소개
확률에 대한 이해는 과학, 통계에서 금융, 게임에 이르기까지 많은 분야에서 정보에 기반한 의사결정을 내리는 데 필수적입니다. 이 확률 계산기는 단일 사건의 가능성을 평가하거나, 여러 조건을 만족해야 하는 복합 사건을 분석하거나, 이전 결과에 의존하는 조건부 확률을 결정하는 등 다양한 시나리오에서 확률을 계산하는 데 도움을 줍니다. 계산을 자동화함으로써 수동 계산 오류를 제거하고 확률 이론을 학생, 연구자, 전문가 모두가 접근 가능하게 만듭니다.
계산기 사용은 간단합니다. 계산하려는 확률의 유형(단일 사건, AND/OR 복합 사건, 조건부, 또는 최소한 하나 시나리오)을 선택하고 관련 값(개별 확률 또는 결과의 개수)을 입력하면 도구가 결과를 소수와 백분율로 표시합니다. 일반적인 사용 사례로는 주사위 결과 예측, 카드 덱에서 특정 카드를 뽑을 확률 계산, 장비 고장률 평가, 의료 검사 정확도 평가, 여러 독립적 또는 종속적 사건이 상호작용하는 게임 전략 분석 등이 있습니다.
정확한 결과를 얻으려면 입력 확률이 0과 1 사이에 있는지 확인하세요. 'AND'는 모든 사건이 발생해야 함(곱셈 법칙)을 의미하고, 'OR'은 최소한 하나의 사건이 발생(겹침을 조정한 덧셈 법칙)함을 의미함을 기억하세요. 조건부 확률 계산은 의료 진단의 베이즈 추론이나 품질 관리 검사처럼 결과의 확률이 이전에 일어난 일에 크게 의존하는 실제 시나리오에서 특히 유용합니다.
자주 묻는 질문
코드 구현
from fractions import Fraction
import math
def single_event_probability(favorable: int, total: int) -> dict:
"""P(A) = favorable / total"""
if total <= 0:
raise ValueError("Total outcomes must be positive")
prob = favorable / total
frac = Fraction(favorable, total)
return {
"decimal": round(prob, 6),
"fraction": f"{frac.numerator}/{frac.denominator}",
"percentage": round(prob * 100, 4),
}
def compound_and_probability(p_a: float, p_b: float) -> float:
"""P(A and B) = P(A) × P(B) for independent events"""
return p_a * p_b
def compound_or_probability(p_a: float, p_b: float) -> float:
"""P(A or B) = P(A) + P(B) - P(A and B) for independent events"""
return p_a + p_b - p_a * p_b
def at_least_one_probability(p_single: float, trials: int) -> float:
"""P(at least one) = 1 - P(none) = 1 - (1-p)^n"""
return 1 - (1 - p_single) ** trials
# Examples
print("=== Single Event ===")
r = single_event_probability(3, 6) # Rolling a 1, 2, or 3
print(f"P = {r['fraction']} = {r['decimal']} = {r['percentage']}%")
print("\n=== Compound (AND) ===")
p_and = compound_and_probability(1/6, 1/6) # Two dice both show 1
print(f"P(1 and 1) = {p_and:.6f} = {p_and*100:.4f}%")
print("\n=== Compound (OR) ===")
p_or = compound_or_probability(0.5, 0.3)
print(f"P(A or B) = {p_or:.6f} = {p_or*100:.2f}%")
print("\n=== At Least One ===")
p_atleast = at_least_one_probability(1/6, 3) # At least one 6 in 3 rolls
print(f"P(at least one 6 in 3 rolls) = {p_atleast:.6f} = {p_atleast*100:.2f}%")Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.