Calcolatore dei dischi
Inserisca il peso che vuole sul bilanciere e veda esattamente quali dischi vanno su ogni lato: 100 kg con una barra da 20 kg sono 40 kg per lato, un disco da 25 e uno da 15. Nessun arrotondamento se l'obiettivo non si può comporre. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Peso totale desiderato (kg)
- 100
- Peso del bilanciere (kg)
- 20
- Peso dei dischi per lato (kg)
- 40
- Peso totale caricato (kg)
- 100
caricamento bilanciere gratis
Come si carica un bilanciere, passo dopo passo
Caricare un bilanciere è un conto semplice, ma facile da sbagliare in una palestra affollata. Per prima cosa si toglie dall'obiettivo il peso della barra vuota; la barra standard pesa 20 kg. Poi si divide il resto per due, perché i due lati devono essere uguali. Infine si riempie ogni lato partendo dal disco più pesante che ci sta ancora, poi il successivo, finché non resta nulla. Con il set standard di dischi da 25, 20, 15, 10, 5, 2,5 e 1,25 kg, un obiettivo di 100 kg lascia 40 kg per lato, cioè un disco da 25 kg e uno da 15 kg. Il risultato mostra anche il totale esatto che solleverà.
Gli errori di caricamento più comuni
L'errore più frequente è dimenticare la barra, così ogni serie pesa più del previsto. Un altro è caricare i due lati in modo diverso, e il bilanciere si inclina. Con i dischi standard il carico per lato sale a passi di 1,25 kg, quindi alcuni obiettivi non si possono comporre; il calcolatore lo segnala invece di arrotondare a un peso vicino. Se la sua palestra ha un'altra barra o altri dischi, li inserisca, perché un caricamento che conta su dischi che non possiede non serve a nulla. Anche i valori convertiti dalle libbre funzionano, purché tutto sia nella stessa unità.
Raggiungibilità e i due casi speciali
Il set di dischi predefinito ha un passo massimo comune di 1.25 kg, quindi i carichi per lato devono essere multipli di quel passo per essere caricabili. Può sovrascrivere completamente plates per modellare l'inventario della sua palestra, inclusi valori frazionari o convertiti in libbre.
Casi d'uso
App per palestra e allenamento
Mostri a un atleta esattamente quali dischi infilare su ciascun lato per un peso di lavoro prescritto, usando il suo bilanciere.
Inventari di dischi personalizzati
Passi un array plates per corrispondere alla dotazione di una palestra domestica e rilevi quando un obiettivo semplicemente non può essere caricato.
Domande frequenti
Come decide quali dischi usare?
Con una passata greedy dal più grande sul set di dischi deduplicato e ordinato in modo decrescente, caricando per lato quanti dischi di ogni misura entrano.
Quanto peso va su ogni lato del bilanciere?
Sottragga la barra dall'obiettivo e divida il resto per due. Un obiettivo di 100 kg con una barra da 20 kg lascia 80 kg di dischi, quindi ogni lato porta 40 kg.
Perché il mio peso obiettivo non si può caricare?
I dischi disponibili non arrivano esattamente al carico richiesto per lato. Con il set standard ogni lato deve essere un multiplo di 1,25 kg; invece di proporle un valore vicino, il calcolatore le segnala che l'obiettivo non è raggiungibile.
Posso usare i miei dischi o una barra diversa?
Sì. Indichi i dischi che la sua palestra ha davvero, compresi quelli frazionari o convertiti dalle libbre, e inserisca il peso della sua barra. Il caricamento userà solo ciò che possiede.
E se l'obiettivo è uguale alla barra vuota o più leggero?
Se l'obiettivo coincide con la barra, non servono dischi e solleva la barra da sola. Se è più leggero della barra vuota, non si può caricare e il calcolatore lo rifiuta.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
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)Esempio di richiesta
{
"target_kg": 100
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.plate_calculator",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Dati un target_kg, un bar_kg e un elenco facoltativo di dischi disponibili, restituisce il caricamento dal più grande al più piccolo per un lato del bilanciere e il totale esatto raggiunto.
L'algoritmo greedy per lato
Deduplica l'elenco dei dischi in un insieme, lo ordina in modo decrescente e, per ogni disco, ne prende quanti ne entrano con Math.floor(remaining/p + 1e-12), sottraendone il peso prima di passare alla misura successiva. Con i valori predefiniti (bar_kg 20 e il set standard di dischi 25, 20, 15, 10, 5, 2.5, 1.25) un obiettivo di 100 kg lascia 80 kg di carico, 40 kg per lato, e la passata greedy restituisce un disco da 25 kg e uno da 15 kg per lato, esattamente l'esempio pubblicato. Ogni voce in plates_per_side è una coppia {weight, count}, ordinata dal più pesante, che descrive cosa appendere a un'estremità del bilanciere.
Raggiungibilità e i due casi speciali
Dopo la passata greedy, se rimane un peso residuo superiore a 1e-6 kg, il carico non può essere costruito con i dischi forniti e la chiamata solleva invalid_input, a significare che l'obiettivo non è raggiungibile con il set di dischi, anziché restituire un caricamento approssimato. Due casi speciali cortocircuitano l'algoritmo: se il carico è pari a zero (obiettivo uguale al bilanciere) restituisce per_side_kg 0, un array plates_per_side vuoto e total_kg uguale al bilanciere; se il carico è negativo (obiettivo inferiore al bilanciere) solleva invalid_input perché l'obiettivo è più leggero del bilanciere scarico.
Input, validazione e totali riportati
target_kg deve essere un numero finito maggiore di zero, e bar_kg deve essere un numero finito di almeno zero, con valore predefinito 20 quando omesso. Il parametro plates, quando fornito, deve essere un array non vuoto in cui ogni elemento è un numero finito maggiore di zero; un non-array, un array vuoto o un disco non positivo sollevano ciascuno un errore tipizzato invalid_input. Si noti che questa capacità non esegue alcun arrotondamento dei pesi: per_side_kg è esattamente load/2 e total_kg viene ricalcolato come bar_kg + 2*per_side_kg, così che il totale restituito rifletta il vero peso caricato anziché l'obiettivo richiesto quando differiscono. La risposta riporta target_kg e bar_kg accanto a per_side_kg, alla suddivisione dei dischi e al totale, fornendo un piano di caricamento autosufficiente.
Casi di integrazione
Strumenti di programmazione e coaching
Elabori in blocco i pesi obiettivo di un'intera sessione tramite l'API per pre-generare le indicazioni di caricamento per ogni serie.
Domande tecniche
Qual è il bilanciere e il set di dischi predefinito?
Un bilanciere da 20 kg e dischi da 25, 20, 15, 10, 5, 2.5 e 1.25 kg, salvo sovrascrivere bar_kg o l'array plates.
E se l'obiettivo non può essere costruito esattamente?
Se rimane un peso dopo la passata greedy, restituisce un errore invalid_input, a significare che l'obiettivo non è raggiungibile con quel set di dischi.
I risultati sono per lato o totali?
plates_per_side elenca cosa va a un'estremità del bilanciere; per_side_kg è load/2 e total_kg è bar_kg più il doppio di quello.
È gratuito e quanto costa l'API?
Il widget del browser è gratuito (tier A) ed esegue lo stesso motore deterministico; le chiamate API vengono fatturate per ogni richiesta riuscita a partire da $0.002.