Перейти к содержимому

Калькулятор идеального веса

Рассчитайте ваш идеальный вес по росту с использованием нескольких формул.

Об этом инструменте

Калькулятор идеального веса рассчитывает здоровый вес тела, используя пять основанных на доказательствах формул, признанных в спортивной медицине и фитнес-науке. Вместо одного метода инструмент показывает результаты Robinson, Miller, Devine, Hamwi и диапазон здорового ИМТ, демонстрируя, как разные экспертные подходы могут дать немного отличающиеся цели в зависимости от роста и пола. Понимание этих разных точек зрения поможет вам установить реалистичную и персональную цель веса.

Введите пол и рост в сантиметрах (метрическая система) или футах и дюймах (английская система), затем нажмите Вычислить. Инструмент мгновенно выводит рекомендации по весу из всех пяти формул в килограммах и фунтах. Диапазон здорового ИМТ показывает полосу веса, соответствующую стандартному диапазону здорового ИМТ 18,5–24,9, который многие организации здравоохранения рекомендуют для общего благополучия.

Идеальный вес никого не совпадает полностью — плотность костей, мышечная масса, возраст и уровень физической подготовки влияют на то, что означает здоровый вес конкретно для вас. Эти формулы лучше всего использовать как основу для обсуждения с медицинским работником или специалистом по фитнесу, особенно если у вас есть конкретные заболевания или спортивные цели. Регулярный мониторинг в сочетании с общими показателями физической подготовки дает более полную картину, чем вес в одиночку.

Часто задаваемые вопросы

Реализация кода

def ideal_weight(height_cm: float, sex: str) -> dict:
    """
    Calculate ideal body weight using Devine, Robinson, and Miller formulas.
    sex: 'male' or 'female'
    Returns weights in kg.
    """
    height_in = height_cm / 2.54
    inches_over_5ft = max(0, height_in - 60)  # inches above 5 feet

    if sex == "male":
        devine  = 50.0  + 2.3   * inches_over_5ft
        robinson = 52.0 + 1.9   * inches_over_5ft
        miller   = 56.2 + 1.41  * inches_over_5ft
    else:
        devine  = 45.5  + 2.3   * inches_over_5ft
        robinson = 49.0 + 1.7   * inches_over_5ft
        miller   = 53.1 + 1.36  * inches_over_5ft

    bmi_low  = 18.5 * (height_cm / 100) ** 2
    bmi_high = 24.9 * (height_cm / 100) ** 2

    return {
        "devine_kg":  round(devine, 1),
        "robinson_kg": round(robinson, 1),
        "miller_kg":  round(miller, 1),
        "bmi_range_kg": f"{bmi_low:.1f} - {bmi_high:.1f}",
    }

result = ideal_weight(170, "female")
print(f"Devine   : {result['devine_kg']} kg")
print(f"Robinson : {result['robinson_kg']} kg")
print(f"Miller   : {result['miller_kg']} kg")
print(f"BMI 18.5-24.9: {result['bmi_range_kg']} kg")

Comments & Feedback

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