コンテンツへスキップ
🛠️ToolsShed

Probability Calculator

単一イベント、複合(AND/OR)、条件付き、最少1つの確率を計算します。

このツールについて

確率の理解は、科学・統計から金融・ゲームに至るまで、多くの分野で情報に基づいた意思決定を行うために不可欠です。この確率計算機は、単一事象の尤度を評価したり、複数の条件を満たす必要のある複合事象を分析したり、先行する結果に依存する条件付き確率を決定したりするなど、様々なシナリオにおける確率を計算するのに役立ちます。計算を自動化することで、手計算のエラーを排除し、確率論を学生、研究者、専門家にとってアクセスしやすいものにします。

計算機の使用は簡単です。計算したい確率のタイプ(単一事象、AND/OR複合事象、条件付き、または少なくとも1つのシナリオ)を選択し、関連する値(個々の確率または結果の数)を入力するだけで、ツールは結果を小数とパーセンテージの両方で表示します。一般的な用途には、サイコロの目の結果の予測、デッキから特定のカードを引く確率の計算、機器の故障率の評価、医療検査の正確さの評価、複数の独立または従属事象が相互作用するゲーム戦略の分析などが含まれます。

正確な結果を得るには、入力確率が0から1の間にあることを確認してください。『AND』はすべての事象が発生する必要がある(乗法則)ことを意味し、『OR』は少なくとも1つの事象が発生する(重複を調整した加法則)ことを意味することを覚えておいてください。条件付き確率の計算は、医療診断におけるベイズ推論や品質管理テストなど、結果の確率が以前何が起こったかに大きく依存する実世界のシナリオで特に有用です。

よくある質問

コード実装

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.