Epley式で1RM(最大挙上重量)を推定
実際に限界まで挑まなくても1RMの目安が分かります。100を5回挙げた場合、Epley式の推定値は同じ単位で116.66666666666667となり、トレーニング重量を決める基準になります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 重み
- 100
- 回数
- 5
- 1RM (最大挙上重量)
- 116.6666666667
この計算ツールは、完遂したセットから1回だけ挙げられる最大重量の目安を求めます。挙上した重量と正の反復回数を入力すると、重量に「1+反復回数÷30」を掛けるEpley式を適用します。入力単位は維持されるため、kgで入力すればkg、lbで入力すればlbで結果が返ります。実測の最大重量ではなくトレーニング計画用の推定値ですが、限界挙上を行わずに一貫した基準を得られます。
現在の筋力を表すセットを入力します
フォームを保って実施したセットを選び、weightに使用重量を入力してください。次に、その重量で正しく完遂した回数を正の整数としてrepetitionsへ入力します。Epley式では単位が変わりません。
セッション間で比較したり別のシステムへ渡したりするときは、同じ単位を使い続けてください。重量は0より大きい有限数、反復回数は正の整数である必要があります。予定回数ではなく、実際に完遂した回数を用いてください。
補助付きや可動域の短い反復は、トレーニング規則で明示されている場合を除き含めないでください。余力を大きく残したセットより、十分に負荷のかかったワーキングセットのほうが、現在の能力を示す資料として有用です。この計算機はフォーム、疲労、可動域、努力度を判断できないため、結果の質は元にするセットの選び方から決まります。
Epley推定値の計算方法を理解します
重量100で5回の場合、回数による加算分は5÷30、つまり6分の1なので、推定値は100×7÷6です。モデルや換算表を参照せず、乱数や現在時刻を使わず、外部サービスにも接続しません。アルゴリズム内では丸めません。
利用可能なプレート刻みや表示桁数を勝手に決めず、呼び出し側が目的に合った丸め方を選べるようにするためです。画面では読みやすく整形でき、自動処理では独自の丸め規則を適用できます。重量を固定すると推定値は回数に対して直線的に増えますが、これはEpley式の性質であり、人間の筋力が直線的に変化するという意味ではありません。
別の1RM式は異なる曲線を使うため、特に高回数セットでは結果がずれることがあります。この機能は手法を明確にするためEpley式だけを返します。
実測値ではなく計画用の目安として使います
推定1RMは、トレーニング重量を割合で決める場合、似たセットを時系列で比べる場合、重量と回数が同時に変わった成績を共通尺度で見る場合に役立ちます。指導者は最近のワーキングセットから基準値を求め、選手に本当の限界挙上を求めずに次回の概算重量を設定できます。推定重量を実際に1回安全に挙げられる保証はありません。
技術、疲労、器具、テンポ、可動域、補助、直近の練習、個人の筋持久力によって実際の最大値は式から離れます。比較時は、種目のバリエーション、器具設定、動作基準、重量単位をそろえてください。高回数セットほど最大筋力より持久力の影響が強くなる場合があります。
重要な挑戦では、有資格者の指導、安全設備、無理のない漸進、当日の体調判断を優先してください。
活用例
割合ベースの練習を計画
最近のワーキングセットをEpley基準値に変換し、各強度帯のおおよその重量を選べます。
筋力の推移を記録
同じ種目条件で重量と完遂回数の両方が変わったときも、推定値を比較できます。
よくある質問
どの計算式を使いますか?
重量に「1+反復回数÷30」を掛けるEpley式を使用します。
重量はどの単位で入力しますか?
単位を統一すれば任意です。kgで入力すればkg、lbで入力すればlbで返ります。
推定値は実測した最大重量と同じですか?
同じとは限りません。 フォーム、疲労、器具、種目条件、筋持久力によって実際の最大値は変わります。
結果は丸められますか?
計算値をそのまま返し、表示桁数やプレート刻みを強制しません。用途に合わせて丸められます。
推定にはどのセットを使えばよいですか?
正しいフォームで行った、きつめの本番セットが適しています。予定の回数ではなく、その重量で実際に挙げきった回数だけを入力し、補助付きや可動域の不十分な回数は数えないでください。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/calc2/one-rep-max-estimate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"weight":100,"repetitions":5}'const res = await fetch("https://api.kit.forhosting.com/calc2/one-rep-max-estimate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"weight": 100,
"repetitions": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/calc2/one-rep-max-estimate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"weight": 100,
"repetitions": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/calc2/one-rep-max-estimate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"weight":100,"repetitions":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"weight":100,"repetitions":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/calc2/one-rep-max-estimate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"weight": 100,
"repetitions": 5
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "calc2.one_rep_max_estimate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
現在の筋力を表すセットを入力します
重量をkgで入力した場合、one_rep_maxもkgになり、lbで入力した場合はlbになります。未入力、0、負数、小数、無限大、数値以外の回数は、誤解を招く推定値を出さずinvalid_inputとして拒否されます。
Epley推定値の計算方法を理解します
Epley式では、one_rep_maxを「weight×(1+repetitions÷30)」として計算します。実装はこの決定論的な算術だけを実行し、元の重量、反復回数、one_rep_max、使用した式の表示を返します。そのため、同じ純粋関数solveがブラウザとAPIで同じJSONを生成できます。
実測値ではなく計画用の目安として使います
トレーニングソフトではone_rep_maxをweightとrepetitionsと一緒に保存すると、履歴内の数値がどのセットから得られたか確認できます。正常なAPIリクエストは1回$0.002で、無効な入力は明確に拒否されます。
連携の活用例
練習記録を自動化
再現可能なone_rep_maxを、元の重量、回数、式とともにトレーニングソフトへ保存できます。
技術的な質問
反復回数が正数である必要はなぜですか?
完遂したセットを表すためです。0や負数は有効な実績ではなくinvalid_inputになります。
APIの料金はいくらですか?
正常なリクエストは1回$0.002です。同じ決定論的計算をブラウザでも実行できます。