跳到内容
🛠️ToolsShed

二项分布计算器

计算离散事件的二项概率P(X=k)、P(X≤k)和P(X≥k)。

关于此工具

二项分布计算器用于计算恰好具有两个可能结果的离散事件的精确概率。该工具对统计学家、数据科学家以及从事质量控制、医学试验或任何涉及恒定成功概率的重复独立实验的人员至关重要。

使用此计算器时,请输入试验次数(n)、每次试验的成功概率(p,介于0和1之间)以及要分析的成功次数(k)。该工具可以立即计算三个关键概率:恰好获得k次成功的概率、获得k次或更少成功的累积概率,以及获得k次或更多成功的概率。这种灵活性使您能够回答有关二项情景的精确问题和基于范围的问题。

二项分布适用于无数现实场景:预测批次中的缺陷项目数量、确定医学研究中的患者恢复率、分析客户转化率或评估制造质量。理解这些概率有助于您根据预期结果而非猜测做出明智决策。

常见问题

代码实现

import math

def binomial_pmf(n: int, k: int, p: float) -> float:
    """P(X = k) for Binomial(n, p)"""
    log_c = math.lgamma(n + 1) - math.lgamma(k + 1) - math.lgamma(n - k + 1)
    log_p = k * math.log(p) + (n - k) * math.log(1 - p) if 0 < p < 1 else (0 if p == k / n else float('-inf'))
    return math.exp(log_c + log_p)

def binomial_cdf(n: int, k: int, p: float) -> float:
    """P(X <= k)"""
    return sum(binomial_pmf(n, i, p) for i in range(k + 1))

# Example: 10 coin flips, p=0.5, exactly 6 heads
n, k, p = 10, 6, 0.5
print(f"P(X = {k}) = {binomial_pmf(n, k, p):.4f}")
print(f"P(X ≤ {k}) = {binomial_cdf(n, k, p):.4f}")
print(f"P(X ≥ {k}) = {1 - binomial_cdf(n, k - 1, p):.4f}")
print(f"Mean = {n * p:.2f}, Std Dev = {(n * p * (1 - p)) ** 0.5:.2f}")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.