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

血中アルコール濃度計算ツール

飲酒量、体重、時間をもとに血中アルコール濃度(BAC)を推定します。

このツールについて

血液アルコール濃度(BAC)は、血液中のアルコール百分率を示す指標で、飲酒の影響度を測定する重要な数値です。このBAC計算機は、摂取したアルコール量、体重、性別、飲酒開始からの経過時間に基づいて、推定血液アルコール濃度を算出します。推定BACを理解することで、運転や機械操作、高度な判断力が必要な活動が安全かどうかを判断するのに役立ちます。

計算機を使用するには、摂取したスタンダードドリンク(標準飲料単位)の数、体重、性別を入力し、飲酒開始からの経過時間を指定してください。計算機は法医学と公衆衛生の分野で広く認められているWidmark公式を用いてBACを推定します。ただし、これはあくまで推定値であり、実際のBAC値は食事摂取、代謝速度、アルコール濃度、水分補給など様々な要因に左右されます。

この結果は教育目的および危害軽減のためにのみ提供されており、法的弁論や呼気検査の代替として使用されるべきではありません。多くの司法管轄区では法定運転限界(多くの国で0.08%)が定められており、警察の呼気検査が唯一の信頼できる測定方法です。常に安全を優先し、飲酒後はタクシーや運転代行、ライドシェアサービスを利用することをお勧めします。

よくある質問

コード実装

def calculate_bac(
    drinks: list[dict],
    weight_kg: float,
    gender: str,
    hours_elapsed: float
) -> float:
    """
    Estimate Blood Alcohol Content using the Widmark formula.
    BAC = (alcohol_grams / (weight_kg * r * 10)) - (0.015 * hours)
    r = 0.68 for male, 0.55 for female

    drinks: list of {"abv": float (%), "volume_ml": float}
    WARNING: For estimation only. Never use to determine fitness to drive.
    """
    r = 0.68 if gender.lower() == "male" else 0.55
    total_alcohol_grams = sum(
        d["volume_ml"] * (d["abv"] / 100) * 0.789  # ethanol density = 0.789 g/ml
        for d in drinks
    )
    bac = (total_alcohol_grams / (weight_kg * r * 10)) - (0.015 * hours_elapsed)
    return max(bac, 0.0)

# Example: 80kg male, 2 beers (5%, 355ml), 1 hour elapsed
drinks = [
    {"abv": 5, "volume_ml": 355},
    {"abv": 5, "volume_ml": 355},
]
bac = calculate_bac(drinks, weight_kg=80, gender="male", hours_elapsed=1)
print(f"Estimated BAC: {bac:.4f}%")  # ~0.0367%

Comments & Feedback

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