Site Icon古老と生成AI
📅 2026-07-27

閑話108|ラブラドールの体重管理をハックせよ:愛犬のためのPython給餌計算機

去年の2月頃のことである。 我が家の愛犬、ラブラドール・レトリーバーの「ろみ」が、獣医からイエローカードを突きつけられた。

「ちょっと太り始めてますね。ご飯の量、気をつけてください」

ラブラドールはとにかく食欲旺盛な犬種だ。油断するとすぐわがままボディになってしまう。老生は決意した。どんぶり勘定の給餌をやめ、データと計算に基づく「ダイエット作戦」を遂行することを。

結果から言えば、この作戦は大成功を収め、ろみは現在28kgというベストな体重で落ち着いている。今回は、ろみの健康を守るために老生が書き下ろした「Python給餌計算プログラム」の話をしよう。

🎥 愛犬ろみのダイエット作戦(ドキュメンタリー動画)

💡 [ヒント] 多言語版は提供していません。翻訳はご自身のデバイスで行ってください。

この音声や動画には、意図的に日本語版を用意していません。別の言語で聴きたい場合は、スマートフォンの「Google 翻訳」アプリで音声翻訳(リアルタイム翻訳)機能を有効にし、イヤホンを使って聴いてみてください。
最新のAIは、男性と女性の声を瞬時に判別してリアルタイムで「自動吹き替え」を行い、完璧な多言語ラジオを実現できます。これこそが2026年のコンテンツ視聴スタイルになるでしょう……たぶん。知らんけど。


愛犬ろみ



1. パッケージの裏は信じない(獣医学に基づくカロリー計算)

ドッグフードのパッケージの裏には「体重〇kgなら〇グラム」という目安が書いてあるが、あれはあくまで平均値だ。個体差や避妊の有無、毎日の運動量によって必要なカロリーは大きく変わる。

そこで老生は、獣医学に基づく正確なカロリー計算式を採用した。 まずは、犬が何もしなくても消費する「安静時エネルギー要求量(RER)」を割り出す。

RER=70×W0.75RER = 70 \times W^{0.75}

(※ WW は犬の体重・kg)

ここに、その犬の活動レベルに応じた係数を掛けることで、1日に本当に必要な「維持エネルギー要求量(MER)」が導き出される。

MER=RER×Activity FactorMER = RER \times \text{Activity Factor}



2. 5:8のブレンド地獄をPythonに丸投げする

計算式はわかった。しかし、我が家の給餌には**「面倒極まりない運用ルール」**が存在していた。

ろみの体重や運動量が変わるたびに、これを電卓で叩くのは正気の沙汰ではない。 「面倒な反復計算は機械にやらせる」。これが電脳古老の鉄則である。老生はサクッとPythonでスクリプトを書いた。

💻 Lab_gr.py(給餌量自動計算スクリプト)

import pandas as pd

# RER (Resting Energy Requirement) 計算
weight_kg = 28
RER = 70 * (weight_kg ** 0.75)

# 活動レベル別の係数
activity_levels = {
    "低活動(避妊済み・室内飼い)": 1.6,
    "標準的な活動(散歩1〜2回)": 1.8,
    "活発(長時間の運動あり)": 2.0,
    "非常に活発(スポーツ犬など)": 2.5
}

# 各活動レベルのMERを計算
MER_values = {level: RER * factor for level, factor in activity_levels.items()}

# 各フードのカロリー情報(kcal/100g)
calories_per_100g = {
    "ソルビダ": 350,
    "ビューティープロ": 380
}

# 給餌割合
solvida_ratio = 5 / (5 + 8)  # 5:8 の比率
beauty_pro_ratio = 8 / (5 + 8)

# 各活動レベルにおけるフードの必要量を計算
feeding_amounts = []
for level, mer in MER_values.items():
    solvida_kcal = mer * solvida_ratio
    beauty_pro_kcal = mer * beauty_pro_ratio

    # 100gあたりのカロリーからグラム数を出し、1日2回なので 1/2 にする
    solvida_g = solvida_kcal / calories_per_100g["ソルビダ"] * 100 / 2
    beauty_pro_g = beauty_pro_kcal / calories_per_100g["ビューティープロ"] * 100 / 2

    feeding_amounts.append([level, round(solvida_g, 2), round(beauty_pro_g, 2)])

# データフレーム作成
df_feeding = pd.DataFrame(feeding_amounts, columns=["活動レベル(1食分)", "ソルビダ (g)", "ビューティープロ (g)"])

print(df_feeding)

Pythonアルゴリズムの全工程(フローチャート)

flowchart TD
    Start([START]) --> Step1["1. 【初期値のセットアップ】<br>・愛犬の体重(28kg)<br>・フードのカロリー情報(ソルビダ: 350kcal, ビューティープロ: 380kcal)<br>・給餌の黄金比率(5 : 8)"]
    Step1 --> Step2["2. 【RER(安静時エネルギー要求量)の計算】<br>・計算式: RER = 70 × (体重 ^ 0.75)"]
    Step2 --> Step3["3. 【活動レベル別のループ処理開始】<br>(低活動 / 標準 / 活発 / 非常に活発 の4パターンで反復)"]

    subgraph Loop ["ループ内の処理"]
        Step3 --> Step3a["(a) MER(維持エネルギー要求量)の算出<br>・MER = RER × 活動レベル係数 (1.6 〜 2.5)"]
        Step3a --> Step3b["(b) フードごとの必要カロリー分配<br>・ソルビダのkcal = MER × (5 / 13)<br>・ビューティプロのkcal = MER × (8 / 13)"]
        Step3b --> Step3c["(c) グラム数への変換 & 1食分(半分)の計算<br>・ソルビダの量(g) = (kcal ÷ 350) × 100 ÷ 2<br>・ビューティプロの量(g) = (kcal ÷ 380) × 100 ÷ 2"]
    end

    Step3c --> Step4["4. 【データの集約】<br>・ループ結果をリストに格納"]
    Step4 --> Step5["5. 【表の作成と出力】<br>・Pandasを使ってリストをデータフレームに変換<br>・ターミナルに出力"]
    Step5 --> End([END])

3. 実行結果:一瞬で導き出される「今日の最適解」

このスクリプトを実行すると、ターミナルに以下のような表が出力される。ろみ(28kg)の1食分のブレンド量である。

活動レベル(1食分)ソルビダ (g)ビューティープロ (g)
低活動(避妊済み・室内飼い)74.87110.33
標準的な活動(散歩1〜2回)84.23124.12
活発(長時間の運動あり)93.58137.91
非常に活発(スポーツ犬など)116.98172.39

たとえば「今日は雨で散歩が短かったから低活動の量で」とか、「ドッグランで走り回ったから活発の量で」といった調整が、迷うことなくグラム単位で可能になったのだ。

ろみが28kgで健康体をキープできているのは、間違いなくこの小さなPythonスクリプトのおかげである。


4. 愛犬家たちへ届ける「次のステップ」

プログラミングとは、巨大なシステムやAIを作るためだけのものではない。目の前の大切な家族(愛犬)の健康を守るための、非常に優秀な「デジタル日用品」になり得る。

ただ、このままでは黒い画面(ターミナル)に抵抗がある一般の愛犬家には使ってもらえない。

そこで老生は、次のハックを企てている。

このPythonスクリプトに分かりやすいユーザーインターフェース(UI)を被せ、スマホから誰でもポチポチと使える「Webアプリ」に昇華させることだ。

体重を入力し、フードのカロリーと混ぜる比率をスライダーで設定するだけで、その子にぴったりの給餌量がパッと表示される。そんな愛犬家向けのツールがあれば、世のわがままボディ化に悩むワンコたちを救えるかもしれない。

テクノロジーは、縁側で犬を撫でる日常と地続きにある。

UI実装の顛末については、またいずれ別の記事で語ることにしよう。



🎧 KNOWLEDGE RADIO: kanwa108

「愛犬ろみの体重管理をハックせよ:愛犬のためのPython給餌計算機」

🎙️

KNOWLEDGE RADIO: kanwa108

愛犬ろみの体重管理をハックせよ:愛犬のためのPython給餌計算機

※ 再生ボタンを押すと、NotebookLM生成のラジオが流れます。知らんけど。


執筆協力:ChatGPT+Gemini+NotebookLM / 編集・監修:電脳古老)

💬 電脳古老&変AIへのコメント

記事の感想・質問・雑談をどうぞ(200文字くらいまで推奨)

まだコメントはありません。一番乗りで古老とAIに話しかけよう!

※入力した内容はAI(Gemini)に送信され、自動返信が生成されます。個人情報は入力しないでください。