🛠️ToolsShed

マクロ栄養素計算機

カロリー目標に基づいてタンパク質・炭水化物・脂質の摂取量を計算します。

マクロ計算機は、カロリー目標とフィットネス目標に基づいて、3つのマクロ栄養素 — タンパク質、炭水化物、脂質 — の1日の推奨摂取量を計算します。マクロ栄養素は食品のエネルギー供給成分です:タンパク質はグラムあたり4カロリー、炭水化物はグラムあたり4カロリー、脂質はグラムあたり9カロリーを提供します。

日次カロリー目標、体重、主要なフィットネス目標(脂肪燃焼、維持、または筋肉増加)を入力します。ツールは証拠に基づいたマクロ比率を適用します:筋肉増加には高いタンパク質目標(体重kgあたり約1.6〜2.2g)、エネルギーのための十分な炭水化物、適度な脂質摂取を処方します。

マクロ目標は絶対的なルールではなくガイドラインです。個人の反応は異なり、食の好み、消化、トレーニングスタイルがすべて役割を果たします。多くの人々は数週間マクロを追跡することで、厳格なカウントなしに直感的にうまく食べるための十分な栄養認識を得ます。

よくある質問

コード実装

def calculate_macros(weight_kg: float, height_cm: float, age: int,
                     sex: str, activity: float, goal: str) -> dict:
    """
    Calculate TDEE and macronutrient targets using Mifflin-St Jeor BMR.
    sex: 'male' or 'female'
    activity: 1.2=sedentary, 1.375=light, 1.55=moderate, 1.725=active, 1.9=very active
    goal: 'lose' (-500 kcal), 'maintain', 'gain' (+300 kcal)
    """
    if sex == "male":
        bmr = 10 * weight_kg + 6.25 * height_cm - 5 * age + 5
    else:
        bmr = 10 * weight_kg + 6.25 * height_cm - 5 * age - 161

    tdee = bmr * activity
    adjustment = {"lose": -500, "maintain": 0, "gain": 300}.get(goal, 0)
    target_calories = tdee + adjustment

    # Macro splits (lose: 40/35/25, maintain: 35/40/25, gain: 30/45/25)
    splits = {"lose": (0.40, 0.35, 0.25), "maintain": (0.35, 0.40, 0.25), "gain": (0.30, 0.45, 0.25)}
    p_ratio, c_ratio, f_ratio = splits.get(goal, (0.35, 0.40, 0.25))

    protein_g = target_calories * p_ratio / 4
    carbs_g   = target_calories * c_ratio / 4
    fat_g     = target_calories * f_ratio / 9

    return {
        "bmr": round(bmr), "tdee": round(tdee),
        "target_calories": round(target_calories),
        "protein_g": round(protein_g), "carbs_g": round(carbs_g), "fat_g": round(fat_g),
    }

r = calculate_macros(70, 175, 30, "male", 1.55, "lose")
print(f"BMR             : {r['bmr']} kcal")
print(f"TDEE            : {r['tdee']} kcal")
print(f"Target Calories : {r['target_calories']} kcal")
print(f"Protein         : {r['protein_g']} g")
print(f"Carbs           : {r['carbs_g']} g")
print(f"Fat             : {r['fat_g']} g")

Comments & Feedback

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