Calculadora de composiciones enteras
Cuente todas las formas ordenadas de repartir un entero en sumandos positivos: 5 tiene 16 composiciones y 4 tiene 8, porque 1+3 y 3+1 cuentan por separado. Indique k partes para limitar el recuento. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Entero positivo a componer
- 5
- Cantidad
- 16
Una composición entera de n es una forma ordenada de escribir n como suma de enteros positivos. A diferencia de las particiones, el orden importa: 1+3 y 3+1 son composiciones distintas de cuatro. La combinatoria clásica demuestra que hay exactamente dos elevado a n menos uno composiciones de cualquier n positivo, y exactamente C(n−1, k−1) composiciones con precisamente k partes. Esta capacidad evalúa esas fórmulas con aritmética BigInt para que los conteos grandes permanezcan exactos como cadenas decimales, sin desbordar el punto flotante ni los límites de enteros seguros.
Qué son las composiciones y cómo funcionan las dos fórmulas
Coloque n unos en fila y decida, para cada uno de los n−1 huecos entre ellos, si inserta un separador. Cada patrón de separadores produce una suma ordenada única de partes positivas que totaliza n, y toda composición surge de este modo—por eso el número total de composiciones es dos elevado a n menos uno. Cuando exige exactamente k partes, debe elegir exactamente k−1 de esos n−1 huecos para colocar separadores, lo que es el coeficiente binomial C(n−1, k−1).
Comprobación pequeña: n igual a cuatro tiene las composiciones (4), (1,3), (3,1), (2,2), (1,1,2), (1,2,1), (2,1,1) y (1,1,1,1)—ocho valores, coincidiendo con dos elevado a tres. Exactamente tres partes de cinco: C(4,2) es seis. Esta herramienta multiplica y divide con JavaScript BigInt para que cada intermedio sea exacto y el conteo final se devuelva como cadena decimal, nunca redondeada.
Ese contrato coincide con los manuales de combinatoria y los jueces de concursos de programación, de modo que puede confiar en el número frente a listados manuales para n pequeño y frente a tablas conocidas para valores mayores, sin deriva de punto flotante ni desbordamiento silencioso.
Qué puede hacer con ella
Validadores para concursos de programación y entrevistas
Compruebe soluciones candidatas a problemas de conteo de composiciones sin reimplementar potencias BigInt o binomiales en cada arnés de lenguaje.
Enseñanza de estrellas y barras y sumas ordenadas
Demuestre que las composiciones de n valen 2^(n-1) y las de exactamente k partes valen C(n-1,k-1) con conteos exactos en vivo al introducir funciones generadoras o recursión.
Preguntas frecuentes
¿Qué es una composición entera?
Una composición de n es una tupla ordenada de enteros positivos que suman n. El orden importa: (1,3) y (3,1) son composiciones distintas de 4.
¿Cuántas composiciones tiene un entero positivo n?
Exactamente 2^(n−1) composiciones en total. Las composiciones en exactamente k partes son C(n−1, k−1).
¿Por qué el conteo se devuelve como cadena?
Las potencias grandes de dos y los binomiales superan los enteros seguros de JavaScript. Una cadena decimal conserva el valor exacto para todo n admitido sin pérdida de precisión.
¿Qué ocurre si n es menor que 1 o k es mayor que n?
Esta calculadora exige n ≥ 1 y, cuando k está definido, 1 ≤ k ≤ n.
¿Es gratuita la calculadora de composiciones enteras?
La herramienta del navegador es gratuita y se ejecuta en local.
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/combo/compositions \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":5}'const res = await fetch("https://api.kit.forhosting.com/combo/compositions", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/combo/compositions",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/combo/compositions", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/combo/compositions", 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
{
"n": 5
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "combo.compositions",
"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.
Límites
max_n | 10000 |
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
Estudiantes, docentes, programadores de concursos e ingenieros de datos obtienen un resultado JSON determinista—sin instalar álgebra computacional, sin muestreo aleatorio, y con la misma función pura en la herramienta gratuita del navegador y en la ruta de API prepaga—de modo que las comprobaciones de tareas, la validación de pipelines y los sandboxes de entrevistas compartan una respuesta reproducible siempre que necesiten conteos de composiciones en lugar de particiones sin orden o del simple binomial n-elige-r.
Qué son las composiciones y cómo funcionan las dos fórmulas
Los casos límite son intencionales: n debe ser al menos uno (cero y negativos son invalid_input, no una extensión gratuita), k cuando está presente debe cumplir de uno a n, y omitir k devuelve el total.
Cómo llamar a la API y leer la respuesta
Cuando k se omite o está vacío, el servicio devuelve el conteo total de composiciones dos a la potencia n menos uno. Cuando k está definido, devuelve C(n−1, k−1) y exige uno menor o igual que k menor o igual que n. Una respuesta exitosa incluye n como número, k como número o null cuando se usó el modo total, count como cadena decimal del valor exacto, y formula como la cadena 2^(n-1) o C(n-1,k-1) para que los clientes muestren o registren la identidad sin codificarla a mano. Úselo desde calificadores de tareas, validadores de concursos de programación, sandboxes de preparación de entrevistas, demostraciones de funciones generadoras o cualquier flujo que necesite un conteo de composiciones reproducible sin instalar paquetes de multiprecisión en cada máquina del pipeline. Envíe un cuerpo JSON con el entero positivo obligatorio n—el entero que desea componer—desde uno hasta diez mil. Se aceptan los alias total, N e integer con el mismo significado. El campo opcional k es el número exacto de partes; los alias parts, num_parts y K se mapean a k. La validación fallida—n ausente, n menor que uno, un no entero, una fracción, un valor por encima del máximo publicado, o k mayor que n—devuelve invalid_input y nunca se cobra. El precio es un $0.002 fijo por solicitud exitosa con ítem unitario y precio unitario marginal cero.
Consejos prácticos, límites e intenciones relacionadas
Al enseñar, prefiera ejemplos emparejados: n igual a cuatro da ocho composiciones totales; n igual a cinco y k igual a tres da seis; n igual a cinco y k igual a uno da uno (la única parte igual a n); n igual a cinco y k igual a cinco da uno (todos unos); n igual a cero demuestra el rechazo duro para n menor que uno; y k mayor que n demuestra la ruta de k fuera de rango. Páginas hermanas pueden cubrir combinaciones (n elige r), multinomiales o particiones sin orden; esta página es específicamente para quien busca una calculadora de composiciones enteras, particiones ordenadas en partes positivas, o composiciones de n en k partes. No confunda composiciones con particiones: si el orden no importa, necesita la función de partición p(n), que es otra intención y otra página. Mantenga n como máximo en diez mil para que potencias y binomiales del peor caso terminen con rapidez en el Worker y en el navegador, cubriendo aún tamaños de concurso y de docencia muy por encima del rango seguro de Number. Si necesita multiprecisión con n en cientos de miles, use una pila de enteros grandes dedicada fuera de línea—esta capacidad ligera de parse está pensada para comprobaciones interactivas, pegamento de API y demos de aula. Como ambas fórmulas son deterministas, los estudiantes pueden recomputar casos pequeños listando o con una hoja de cálculo y coincidir con la API línea a línea. Las tareas fallidas que devuelven invalid_input no consumen saldo prepago, lo que mantiene baratos los scripts exploratorios cuando se escriben valores incorrectos al aprender el contrato. Prefiera conteos exactos en cadena antes que forzar un JavaScript Number, para que las potencias grandes de dos no pierdan dígitos de orden bajo en el transporte JSON.
Casos de integración
Calificación de tareas y exámenes sobre composiciones
Asigne a los estudiantes n (y k opcional) y compare sus composiciones contadas a mano con un resultado determinista de la API o del navegador gratuito, sin ambigüedad de punto flotante.