Calculez le chargement des disques par côté
Pour 100 sur une barre de 20, chargez un disque de 25 et un de 15 de chaque côté : 80 en disques, 40 par côté, avec le moins de disques. Le calcul reste exact là où prendre d’abord le plus gros disque échoue. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Poids cible
- 100
- Poids de la barre
- 20
- Poids par côté
- 40
- Poids total atteint
- 100
- Écart par rapport à l'objectif
- 0
Transformez un poids total visé en plan de chargement clair pour chaque côté de la barre. Indiquez le total souhaité, le poids de la barre vide et les formats disponibles dans votre salle. Le calculateur trouve une combinaison exacte lorsqu’elle existe, même si une méthode simple privilégiant toujours le plus grand disque échouerait. Si la charge exacte est impossible, il renvoie une erreur, sauf si vous demandez expressément le résultat le plus proche. Chaque réponse indique le total obtenu et son écart par rapport à la cible.
Renseignez le total, la barre et les formats disponibles
Commencez par le poids total visé, c’est-à-dire tout ce que vous comptez soulever : la barre et des disques identiques à ses deux extrémités. Indiquez ensuite le poids de la barre vide et chaque format de disque disponible. Les nombres peuvent représenter des kilogrammes ou des livres, à condition d’employer la même unité partout ; le calculateur ne convertit pas les systèmes de mesure.
Ne saisissez chaque format qu’une fois, car l’algorithme le considère comme réutilisable et détermine la quantité nécessaire de chaque côté. Par exemple, une cible de 100 avec une barre de 20 laisse 80 pour les disques, soit 40 par côté. Avec 25, 20, 15, 10, 5, 2.5 et 1.25, un disque de 25 et un de 15 de chaque côté atteignent exactement la cible.
La liste du résultat décrit toujours une seule extrémité : reproduisez la disposition de l’autre côté et sécurisez les deux extrémités avant de soulever.
Trouvez une combinaison exacte sans méthode gloutonne
Charger une barre paraît simple, mais choisir systématiquement le plus grand disque qui tient peut donner une mauvaise réponse avec un inventaire inhabituel. Une méthode gloutonne peut se retrouver bloquée alors qu’une autre combinaison atteint bien la cible. Ce calculateur explore les poids réalisables par côté à l’aide d’une table bornée de programmation dynamique.
Il trouve ainsi une combinaison exacte valide dès qu’elle existe dans les limites déclarées. Parmi les combinaisons exactes, il privilégie celle qui emploie le moins de disques, généralement plus rapide et plus claire à installer. La réponse présente chaque format et sa quantité par côté, le poids cumulé des disques d’un côté, le total obtenu, l’écart à la cible et le caractère exact du résultat.
Les poids décimaux sont convertis en entiers mis à l’échelle pendant la recherche, ce qui évite les résidus de virgule flottante susceptibles de rendre 1.25 légèrement supérieur ou inférieur à sa valeur mathématique. Les doublons sont regroupés avant le calcul.
Maîtrisez le comportement lorsque la cible est impossible
Certaines cibles ne peuvent pas être composées avec une barre et un jeu de disques donnés. Puisque la charge doit rester équilibrée, chaque disque posé d’un côté impose son équivalent du côté opposé ; le total évolue donc par incréments égaux au double du format. Par défaut, une demande irréalisable produit une erreur de saisie au lieu de prescrire silencieusement un autre poids.
Ce comportement convient aux logiciels d’entraînement, où une approximation non autorisée pourrait modifier la séance prévue. Le moteur choisit alors le total réalisable dont l’écart absolu est minimal ; en cas d’égalité entre une charge plus légère et une plus lourde, il retient systématiquement la plus légère. La barre vide peut elle-même être la solution la plus proche.
Vérifiez toujours sur place les marquages, les disques, les colliers et le total final.
Cas d’usage
Préparer une séance de musculation
Convertissez chaque charge programmée en consignes de montage par côté avant le début de la séance.
Exploiter un équipement domestique limité
Indiquez uniquement les formats que vous possédez et repérez les cibles impossibles à composer exactement.
Ajouter des consignes à une application
Générez des quantités déterministes, des totaux obtenus et des écarts pour les écrans destinés aux sportifs.
Questions fréquentes
Les disques indiqués concernent-ils un côté ou les deux ?
Placez les mêmes formats et quantités à l’autre extrémité.
Puis-je utiliser des livres plutôt que des kilogrammes ?
Oui. Employez la même unité pour la cible, la barre et tous les disques ; les résultats conserveront cette unité.
Comment une égalité entre deux solutions est-elle tranchée ?
Si deux totaux sont à égale distance, le plus léger est retenu afin de garantir un résultat stable et prudent.
Que se passe-t-il si ma charge visée est impossible à atteindre exactement ?
Par défaut, un message indique que cette charge n’est pas réalisable avec votre barre et vos disques. Si une approximation vous convient, demandez le total chargeable le plus proche : le résultat indique l’écart, en plus ou en moins, par rapport à votre objectif.
Pourquoi ne pas simplement mettre le plus gros disque qui passe ?
Parce qu’avec certains jeux de disques, ce raccourci bloque alors qu’une autre combinaison atteint la charge visée. Le calculateur examine les poids réalisables et, parmi les solutions exactes, retient celle qui utilise le moins de disques.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/fitness2/plate-math-calculate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"target_weight":100,"bar_weight":20,"plates":[25,20,15,10,5,2.5,1.25]}'const res = await fetch("https://api.kit.forhosting.com/fitness2/plate-math-calculate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"target_weight": 100,
"bar_weight": 20,
"plates": [
25,
20,
15,
10,
5,
2.5,
1.25
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fitness2/plate-math-calculate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"target_weight": 100,
"bar_weight": 20,
"plates": [
25,
20,
15,
10,
5,
2.5,
1.25
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fitness2/plate-math-calculate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"target_weight":100,"bar_weight":20,"plates":[25,20,15,10,5,2.5,1.25]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"target_weight":100,"bar_weight":20,"plates":[25,20,15,10,5,2.5,1.25]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fitness2/plate-math-calculate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"target_weight": 100,
"bar_weight": 20,
"plates": [
25,
20,
15,
10,
5,
2.5,
1.25
]
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fitness2.plate_math_calculate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_target_weight | 2000 |
max_plate_denominations | 50 |
max_decimal_places | 3 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Maîtrisez le comportement lorsque la cible est impossible
Activez closest_match lorsqu’un compromis est acceptable. Consultez difference_from_target pour connaître l’ajustement signé : une valeur négative est plus légère, une valeur positive plus lourde.
Questions techniques
Quel est le prix d’une requête API ?
Chaque requête API réussie est facturée à partir de $0.002. Le calcul est déterministe et ne sollicite aucun service externe.
Que se passe-t-il si la cible exacte est impossible ?
Le comportement normal est une erreur invalid_input. Activez closest_match pour obtenir le total réalisable le plus proche.