Calculadora de discos
Escriba el peso deseado y vea exactamente qué discos van a cada lado: 100 kg con una barra de 20 kg son 40 kg por lado, un disco de 25 y uno de 15. Sin redondeos si el objetivo no se puede formar. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Peso total deseado (kg)
- 100
- Peso de la barra (kg)
- 20
- Peso de discos por lado (kg)
- 40
- Peso total cargado (kg)
- 100
carga de barra gratis
Cómo se carga una barra, paso a paso
Cargar una barra es una cuenta sencilla que resulta fácil de equivocar en un gimnasio lleno. Primero se resta al objetivo el peso de la barra vacía; la barra estándar pesa 20 kg. Después se divide lo que queda entre dos, porque los dos lados deben ser iguales. Por último se llena cada lado empezando por el disco más pesado que todavía cabe, luego el siguiente, hasta que no queda nada. Con el juego estándar de discos de 25, 20, 15, 10, 5, 2,5 y 1,25 kg, un objetivo de 100 kg deja 40 kg por lado, que se convierten en un disco de 25 kg y otro de 15 kg. El resultado también muestra el total exacto que levantará.
Errores habituales al cargar la barra
El error más frecuente es olvidarse de la barra, con lo que cada serie pesa más de lo previsto. Otro es cargar los dos lados de forma distinta, lo que inclina la barra. Con los discos estándar, la carga por lado avanza de 1,25 en 1,25 kg, así que algunos objetivos no se pueden formar; la calculadora lo indica en lugar de redondear a un peso cercano. Si su gimnasio tiene otra barra u otros discos, introdúzcalos, porque una carga que cuenta con discos que usted no tiene no sirve de nada. Los valores convertidos desde libras también funcionan, siempre que todo esté en la misma unidad.
Alcanzabilidad y los dos casos especiales
El juego de discos por defecto tiene un paso máximo común de 1.25 kg, de modo que las cargas por lado deben ser múltiplos de ese paso para poder montarse. Puede anular plates por completo para modelar el inventario de su propio gimnasio, incluidos valores fraccionarios o convertidos de libras.
Qué puede hacer con ella
Aplicaciones de gimnasio y entrenamiento
Muestre a un levantador exactamente qué discos deslizar en cada lado para un peso de trabajo prescrito, usando su propia barra.
Inventarios de discos personalizados
Pase un array plates para ajustarse al stock de un gimnasio doméstico y detecte cuándo un objetivo sencillamente no puede montarse.
Preguntas frecuentes
¿Cómo decide qué discos usar?
Una pasada voraz de mayor a menor sobre el juego de discos sin duplicados y ordenado de forma descendente, cargando por lado tantos de cada tamaño como quepan.
¿Cuánto peso va a cada lado de la barra?
Reste la barra al objetivo y divida el resto entre dos. Un objetivo de 100 kg con una barra de 20 kg deja 80 kg en discos, así que cada lado lleva 40 kg.
¿Por qué no se puede cargar mi peso objetivo?
Los discos disponibles no suman exactamente lo que necesita cada lado. Con el juego estándar, cada lado debe ser múltiplo de 1,25 kg; en lugar de darle una aproximación, la calculadora le avisa de que el objetivo no se alcanza.
¿Puedo usar mis propios discos o una barra distinta?
Sí. Indique los discos que tiene de verdad su gimnasio, incluidos los fraccionarios o los convertidos desde libras, y escriba el peso de su barra. La carga se forma solo con lo que usted tiene.
¿Qué pasa si el objetivo es igual a la barra vacía o más ligero?
Si el objetivo coincide con la barra, no necesita ningún disco y levanta solo la barra. Si es más ligero que la barra vacía, no se puede cargar y la calculadora lo rechaza.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su 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)Ejemplo de solicitud
{
"target_kg": 100
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.plate_calculator",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Dado un target_kg, un bar_kg y una lista opcional de discos disponibles, devuelve la carga de discos de mayor a menor para un lado de la barra y el total exacto alcanzado.
El algoritmo voraz por lado
Elimina los duplicados de la lista de discos convirtiéndola en un conjunto, la ordena de forma descendente y, para cada disco, toma tantos como quepan con Math.floor(remaining/p + 1e-12), restando su peso antes de pasar al siguiente tamaño. Con los valores por defecto (bar_kg 20 y el juego de discos estándar 25, 20, 15, 10, 5, 2.5, 1.25), un objetivo de 100 kg deja 80 kg de carga, 40 kg por lado, y la pasada voraz devuelve un disco de 25 kg y uno de 15 kg por lado, exactamente el ejemplo publicado. Cada entrada de plates_per_side es una pareja {weight, count}, ordenada del más pesado primero, que describe qué colgar en un extremo de la barra.
Alcanzabilidad y los dos casos especiales
Tras la pasada voraz, si queda algún peso restante por encima de 1e-6 kg, la carga no puede construirse con los discos dados y la llamada lanza invalid_input, lo que significa que el objetivo no es alcanzable con el juego de discos, en lugar de devolver una carga aproximada. Dos casos especiales cortocircuitan el algoritmo: si la carga es igual a cero (el objetivo es igual a la barra), devuelve per_side_kg 0, un array plates_per_side vacío y total_kg igual a la barra; si la carga es negativa (el objetivo está por debajo de la barra), lanza invalid_input porque el objetivo es más ligero que la barra vacía.
Entradas, validación y totales reproducidos
target_kg debe ser un número finito mayor que cero, y bar_kg debe ser un número finito de al menos cero, con valor por defecto 20 cuando se omite. El parámetro plates, cuando se aporta, debe ser un array no vacío en el que cada elemento sea un número finito mayor que cero; un valor que no sea un array, un array vacío o un disco no positivo lanzan cada uno un error invalid_input tipado. Tenga en cuenta que esta capacidad no redondea los pesos: per_side_kg es exactamente load/2 y total_kg se recalcula como bar_kg + 2*per_side_kg, de modo que el total devuelto refleja el peso realmente cargado y no el objetivo solicitado cuando difieren. La respuesta reproduce target_kg y bar_kg junto a per_side_kg, el desglose de discos y el total, dando un plan de carga autocontenido.
Casos de integración
Herramientas de programación y coaching
Procese por lotes los pesos objetivo de toda una sesión a través de la API para prerrenderizar las indicaciones de carga de cada serie.
Preguntas técnicas
¿Cuál es la barra y el juego de discos por defecto?
Una barra de 20 kg y discos de 25, 20, 15, 10, 5, 2.5 y 1.25 kg, salvo que usted anule bar_kg o el array plates.
¿Y si el objetivo no puede montarse exactamente?
Si queda algún peso tras la pasada voraz, devuelve un error invalid_input, lo que significa que el objetivo no es alcanzable con ese juego de discos.
¿Los resultados son por lado o totales?
plates_per_side lista lo que va en un extremo de la barra; per_side_kg es load/2 y total_kg es bar_kg más el doble de eso.
¿Es gratuito y cuánto cuesta la API?
El widget del navegador es gratuito (tier A) y ejecuta el mismo núcleo determinista; las llamadas a la API se facturan por solicitud correcta desde $0.002.