🛠️ToolsShed

心拍ゾーン計算機

年齢と安静時心拍数に基づいて5つのトレーニング心拍ゾーンを計算します。

心拍数ゾーン計算機は、年齢とオプションで測定した安静時心拍数に基づいて、5つのトレーニング心拍数ゾーンを特定します。特定の心拍数ゾーンでのトレーニングにより、異なる生理的適応を目標にできます:ゾーン1(回復)は最小限の疲労でベースフィットネスを改善し、ゾーン2(有酸素ベース)は脂肪燃焼と持久力をトレーニングし、ゾーン3〜5はそれぞれより高い強度での改善をもたらします。

年齢を入力すると、ツールは最も一般的な公式(220マイナス年齢)を使用して最大心拍数(MHR)を推定します。フィットネステストから実際のMHRがわかっている場合は、より正確なゾーンのために入力してください。

心拍数ゾーンを効果的に使用するには、ワークアウト中に心拍数モニターを着用し、計画した努力期間中に目標ゾーン内に留まるよう努めてください。

よくある質問

コード実装

def calculate_hr_zones(age: int, resting_hr: int = 60, method: str = "fox") -> dict:
    """
    Calculate heart rate training zones.
    method: 'fox' (220 - age), 'tanaka' (208 - 0.7 * age), 'karvonen' (uses resting HR)
    """
    if method == "tanaka":
        max_hr = 208 - 0.7 * age
    else:
        max_hr = 220 - age

    if method == "karvonen":
        hrr = max_hr - resting_hr  # Heart Rate Reserve
        zones = {
            "Zone 1 (Recovery)":  (resting_hr + 0.50 * hrr, resting_hr + 0.60 * hrr),
            "Zone 2 (Aerobic)":   (resting_hr + 0.60 * hrr, resting_hr + 0.70 * hrr),
            "Zone 3 (Tempo)":     (resting_hr + 0.70 * hrr, resting_hr + 0.80 * hrr),
            "Zone 4 (Threshold)": (resting_hr + 0.80 * hrr, resting_hr + 0.90 * hrr),
            "Zone 5 (Max)":       (resting_hr + 0.90 * hrr, max_hr),
        }
    else:
        zones = {
            "Zone 1 (Recovery)":  (0.50 * max_hr, 0.60 * max_hr),
            "Zone 2 (Aerobic)":   (0.60 * max_hr, 0.70 * max_hr),
            "Zone 3 (Tempo)":     (0.70 * max_hr, 0.80 * max_hr),
            "Zone 4 (Threshold)": (0.80 * max_hr, 0.90 * max_hr),
            "Zone 5 (Max)":       (0.90 * max_hr, max_hr),
        }

    print(f"Age: {age}, Max HR: {max_hr:.0f} bpm, Method: {method}")
    for name, (lo, hi) in zones.items():
        print(f"  {name}: {lo:.0f} - {hi:.0f} bpm")
    return zones

calculate_hr_zones(age=30, resting_hr=65, method="karvonen")

Comments & Feedback

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