🛠️ToolsShed

심박수 구간 계산기

나이와 안정 시 심박수를 기반으로 5개의 심박수 훈련 구간을 계산합니다.

심박수 구역 계산기는 나이와 선택적으로 측정된 안정 시 심박수를 기반으로 5개의 훈련 심박수 구역을 식별합니다. 특정 심박수 구역에서 훈련하면 다른 생리적 적응을 목표로 할 수 있습니다: 구역 1(회복)은 최소한의 피로로 기본 체력을 향상시키고, 구역 2(유산소 기반)는 지방 연소와 지구력을 훈련하며, 구역 3(유산소 역치)은 심혈관 효율성을 향상시키고, 구역 4(젖산 역치)는 속도를 높이며, 구역 5(최대 산소 섭취량)는 산소 섭취와 파워를 극대화합니다.

나이를 입력하면 도구가 가장 일반적인 공식(220 빼기 나이)을 사용하여 최대 심박수(MHR)를 추정합니다. 피트니스 테스트에서 실제 MHR을 알고 있다면 더 정확한 구역을 위해 입력하세요. 안정 시 심박수를 추가하면 더 개인화된 계산을 위한 카르보넨 방법이 활성화됩니다.

심박수 구역을 효과적으로 사용하려면 운동 중 심박수 모니터를 착용하고 계획된 노력 기간 동안 목표 구역 내에 머물도록 노력하세요. 대부분의 레크리에이션 운동선수는 훈련 시간의 대부분(약 80%)을 구역 1-2에서, 더 적은 부분(20%)을 높은 강도 구역에서 보내는 것이 이점이 있습니다.

자주 묻는 질문

코드 구현

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.