プレート計算ツール
バーに載せたい重量を入力すると、片側に付けるプレートが正確に分かります。20 kgのバーで100 kgなら片側40 kgで、25と15のプレートを1枚ずつです。重いプレートから順に選び、作れない重量は丸めません。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 目標総重量(kg)
- 100
- バーの重量(kg)
- 20
- 片側のプレート重量(kg)
- 40
- 積載総重量(kg)
- 100
バーベルの積載 無料
バーベルにプレートを付ける手順
バーベルの積載は単純な計算ですが、混み合ったジムでは間違えやすいものです。まず、目標重量から空のバーの重さを引きます。標準のバーは20 kgです。次に、残りを2で割ります。左右は同じ重さでなければならないためです。最後に、まだ収まる最も重いプレートから順に、残りがなくなるまで片側に付けていきます。25、20、15、10、5、2.5、1.25 kgの標準プレートを使う場合、目標が100 kgなら片側40 kgとなり、25 kgのプレート1枚と15 kgのプレート1枚になります。結果には、実際に挙げる正確な合計重量も表示されます。
プレートの付け方でよくある間違い
最も多い間違いは、バーの重さを忘れることです。そうすると、どのセットも予定より重くなってしまいます。左右で違うプレートを付けてしまい、バーが傾くこともあります。標準のプレートでは片側の重さが1.25 kg刻みで変わるため、組めない目標もあります。その場合、このツールは近い重さに丸めず、組めないことを知らせます。ジムのバーやプレートが標準と違うなら、それを入力してください。持っていないプレートを前提にした組み合わせは役に立たないからです。ポンドから換算した値も使えますが、すべて同じ単位にそろえてください。
到達可能性と 2 つの特殊なケース
既定のプレートセットの最大公約の刻みは 1.25 kg ですので、片側の負荷はその刻みの倍数でなければ積載できません。2 つの特殊なケースがアルゴリズムを短絡します。plates を完全に上書きして、小数やポンド換算の値を含む自分のジムの在庫をモデル化できます。
活用例
ジムとトレーニングのアプリ
所定の実施重量に対して、リフター自身のバーを使い、各側にどのプレートを差し込むかを正確に示します。
独自のプレート在庫
plates 配列を渡してホームジムの在庫に合わせ、目標が単に積載できない場合を検出します。
よくある質問
どのプレートを使うかをどう決めますか?
重複排除して降順に並べたプレートセットに対する、大きいプレートから優先する貪欲な処理で、各サイズを片側に収まるだけ積載します。
バーの片側にはどれだけの重さを付けますか?
目標重量からバーの重さを引き、残りを2で割ります。20 kgのバーで目標が100 kgなら、プレートは合計80 kgなので、片側40 kgになります。
目標の重量が組めないのはなぜですか?
手元のプレートでは、片側に必要な重さをちょうど作れないためです。標準のプレートでは、片側の重さは1.25 kgの倍数である必要があります。近い値を勧めるのではなく、組めないことをお知らせします。
自分のプレートや別のバーを使えますか?
はい、使えます。ジムに実際にあるプレートを、端数のある重さやポンドから換算した値も含めて指定し、バーの重さも入力してください。手持ちのプレートだけで組み合わせを作ります。
目標がバーだけの重さと同じか、それより軽いときは?
目標がバーと同じなら、プレートは不要でバーだけを挙げます。空のバーより軽い場合は組むことができないため、計算ツールは受け付けません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/dev/plate-calculator \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"target_kg":100}'const res = await fetch("https://api.kit.forhosting.com/dev/plate-calculator", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"target_kg": 100
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/plate-calculator",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"target_kg": 100
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/plate-calculator", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"target_kg":100}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"target_kg":100}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/plate-calculator", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"target_kg": 100
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.plate_calculator",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
target_kg・bar_kg・利用可能なプレートの任意の一覧を与えると、バーの片側について大きいプレートから優先する積載と、実際に達成される正確な総重量を返します。
片側ごとの貪欲アルゴリズム
プレートの一覧を集合に重複排除し、降順に並べ、各プレートについて Math.floor(remaining/p + 1e-12) で収まるだけの枚数を取り、その重量を引いてから次のサイズに移ります。まさに出荷される例のとおりです。既定値(bar_kg 20 と標準プレートセット 25・20・15・10・5・2.5・1.25)では、目標 100 kg は負荷 80 kg、片側 40 kg を残し、貪欲な処理は片側あたり 25 kg 1 枚と 15 kg 1 枚を返します。plates_per_side の各要素は {weight, count} の組で、重い順に並び、バーの一方の端に掛けるものを記述します。
到達可能性と 2 つの特殊なケース
貪欲な処理の後、1e-6 kg を超える残りの重量が残った場合、その負荷は与えられたプレートでは組めず、呼び出しは近似的な積載を返す代わりに、目標がそのプレートセットで到達不能であることを意味する invalid_input を送出します。負荷が 0 に等しい場合(目標がバーに等しい場合)は per_side_kg 0、空の plates_per_side 配列、バーに等しい total_kg を返します。負荷が負の場合(目標がバーを下回る場合)は、目標が空のバーより軽いため invalid_input を送出します。
入力・検証・返される総重量
plates パラメータは、指定される場合、各要素が 0 より大きい有限な数である空でない配列でなければなりません。target_kg は 0 より大きい有限な数でなければならず、bar_kg は 0 以上の有限な数で、省略時は既定で 20 になります。配列でないもの、空の配列、非正のプレートはそれぞれ型付きの invalid_input エラーを送出します。この capability は重量の丸めを一切行わないことに注意してください。per_side_kg はちょうど load/2 で、total_kg は bar_kg + 2*per_side_kg として再計算されますので、返される総重量は、要求した目標と異なる場合には実際に積載された重量を反映します。応答は target_kg と bar_kg を per_side_kg・プレートの内訳・総重量と並べて返し、自己完結した積載計画を与えます。
連携の活用例
プログラミングとコーチングのツール
セッション全体の目標重量を API に一括で通し、各セットの積載の手がかりを事前描画します。
技術的な質問
既定のバーとプレートセットは何ですか?
bar_kg や plates 配列を上書きしない限り、20 kg のバーと 25・20・15・10・5・2.5・1.25 kg のプレートです。
目標をちょうど組めない場合はどうなりますか?
貪欲な処理の後に重量が残った場合、その目標がそのプレートセットで到達不能であることを意味する invalid_input エラーを返します。
結果は片側ですか、総量ですか?
plates_per_side はバーの一方の端に付けるものを列挙します。per_side_kg は load/2 で、total_kg は bar_kg にその 2 倍を加えたものです。
無料ですか、また API の費用はいくらですか?
ブラウザ widget は無料で(tier A)、同一の決定的なコアを実行します。API 呼び出しは成功したリクエストごとに $0.002 から課金されます。