Calculadora de particiones enteras
Cuente las formas de escribir un entero como suma cuando el orden no importa: 4 se descompone en 4, 3+1, 2+2, 2+1+1 y 1+1+1+1, así que p(4) vale 5, y 5 tiene 7. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- N
- 5
- Valor
- 7
- Cantidad
- 7
- Potencia (W)
- 7
La función de partición entera p(n) responde a una pregunta clásica de conteo: ¿de cuántas maneras puede escribirse un entero no negativo n como suma de enteros positivos cuando el orden de los sumandos no importa? Por ejemplo, 4 es igual a 4, 3+1, 2+2, 2+1+1 y 1+1+1+1, de modo que p(4) vale cinco; 5 tiene siete particiones y 10 tiene cuarenta y dos. Las particiones aparecen en teoría de números, funciones generadoras, mecánica estadística y concursos de programación cuando se cuentan sumas de multiconjuntos en lugar de composiciones ordenadas o particiones de conjuntos etiquetados. Esta capacidad acepta un entero no negativo n y devuelve el p(n) exacto como cadena decimal calculada con programación dinámica en BigInt, de forma que valores muy por encima de los límites habituales de enteros seguros permanecen correctos dígito a dígito. Un n negativo se rechaza con un error de validación claro en lugar de un cero silencioso o una respuesta errónea.
Cómo se define la función de partición p(n)
Una partición entera no restringida de un entero no negativo n es una forma de escribir n como suma de enteros positivos en la que el orden de los sumandos es irrelevante. Por convención p(0) vale uno, contando la partición vacía de cero. Valores clásicos de manual son p(1)=1, p(2)=2 (a saber, 2 y 1+1), p(3)=3, p(4)=5, p(5)=7, p(6)=11 y p(10)=42.
La función generadora ordinaria de la secuencia es el producto infinito, sobre k mayor o igual que uno, de uno entre uno menos x elevado a k, que codifica que cada entero positivo puede aparecer cualquier número de veces como parte. Una recurrencia práctica usada en software es el programa dinámico clásico al estilo del cambio de monedas: se inicializa un arreglo con una forma de formar la suma cero y, para cada tamaño de parte de uno hasta n, se suman las formas de completar el resto.
Esa recurrencia rellena p(n) de forma exacta y nunca cuenta dos veces los ordenamientos porque las partes se introducen en orden no decreciente de tamaño una sola vez.
Objetos relacionados pero distintos incluyen las composiciones, donde el orden sí importa y hay dos elevado a n menos uno composiciones de n; las particiones de conjuntos contadas por números de Stirling de segunda especie o números de Bell, que particionan elementos etiquetados en lugar de sumar enteros positivos sin etiquetar; y las particiones restringidas que exigen partes distintas, solo partes impares o un número fijo de partes.
Esta implementación nunca usa aproximación en coma flotante, muestreo Monte Carlo ni tablas externas: rellena un arreglo unidimensional de BigInt para que cada dígito sea correcto. El camino es plenamente determinista —sin semillas aleatorias, sin relojes, sin red y sin deriva de modelo—, de modo que el mismo n siempre produce la misma cadena.
Dónde aparecen las particiones enteras en el trabajo real
Los cursos de teoría de números y los concursos de programación preguntan con frecuencia cuántas particiones no restringidas tiene un n dado, cómo crece p(n) o si una tabla de valores pequeños coincide con las congruencias de Ramanujan y otras identidades clásicas. Los diseñadores de algoritmos usan conteos de particiones al analizar espacios de estado al estilo de la mochila entera, al contar descomposiciones en multiconjuntos de un presupuesto de recursos o al dimensionar tablas de DP cuyas dimensiones siguen tamaños de parte.
En física y combinatoria, p(n) se conecta con funciones de partición bosónicas y coeficientes de funciones generadoras; los educadores suelen mostrar una lista breve de particiones de un n pequeño y luego pedir solo el conteo. La preparación de entrevistas y el entrenamiento olímpico necesitan a menudo un p(n) fiable sin mantener a mano tablas grandes ni arriesgar conteos de composiciones desfasados en uno.
Si más adelante necesita composiciones donde el orden importa, particiones de conjuntos vía números de Stirling de segunda especie, solo números de Bell, particiones restringidas con partes distintas o solo impares, o un listado explícito de cada partición en lugar del conteo, trátelos como intenciones de búsqueda distintas en lugar de sobrecargar esta página.
Mantenga n dentro del límite documentado para que la latencia del nivel gratuito sea previsible, y prefiera consumidores de cadena para el valor devuelto porque p(n) abandona el rango de enteros seguros mucho antes de cinco mil.
Qué puede hacer con ella
Deberes y concursos de teoría de números
Calcule p(n) exacto para problemas olímpicos, ejercicios de matemática discreta y claves de respuesta automatizadas que piden particiones enteras no restringidas.
Comprobaciones de valores de manual
Verificar valores clásicos como p(5)=7 y p(10)=42 al enseñar funciones generadoras o al construir demostraciones de particiones.
Preguntas frecuentes
¿Qué es la función de partición entera p(n)?
p(n) cuenta las formas de escribir n como suma de enteros positivos cuando el orden no importa. Por ejemplo p(4)=5 y p(5)=7.
¿En qué se diferencia de las composiciones?
Las composiciones cuentan sumas ordenadas (así 1+3 y 3+1 son distintas). Las particiones ignoran el orden, de modo que esas dos son la misma partición de 4.
¿Qué ocurre si n es negativo?
Esta calculadora exige n ≥ 0; un n negativo se rechaza y no se cobra.
¿Por qué el valor es una cadena en lugar de un Number?
Los números de partición superan con rapidez los enteros seguros de JavaScript. Las cadenas decimales conservan cada dígito exacto para p(n) grandes.
¿Cuánto cuesta?
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/partition-count \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":5}'const res = await fetch("https://api.kit.forhosting.com/combo/partition-count", {
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/partition-count",
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/partition-count", 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/partition-count", 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.partition_count",
"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
min_n | 0 |
max_n | 5000 |
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
La herramienta gratuita del navegador y la API de pago comparten una misma función pura, de modo que las demostraciones en el aula y los pipelines automatizados no divergen para el mismo n.
Cómo se define la función de partición p(n)
Los límites declarados mantienen n entre cero y cinco mil inclusive, lo que conserva una latencia en el peor caso adecuada para una herramienta gratuita en el navegador y una ruta ligera de Worker, cubriendo al mismo tiempo necesidades de concursos, aula y pipelines para conteos exactos de particiones.
Qué se envía y qué se recibe
El entero n debe situarse entre cero y cinco mil inclusive. Los mensajes de error nombran el campo ofensor y la regla incumplida para que clientes de formulario y scripts corrijan la entrada sin adivinar. En caso de éxito la respuesta incluye siempre el n normalizado, value y count y p como la misma cadena decimal exacta de p(n), y una cadena de fórmula breve como p(5) para visualización. Indique un entero n obligatorio en el campo n (alias number, value o N). Campos ausentes, no enteros, decimales y cualquier n negativo se rechazan con invalid_input y no se cobran. Comprobaciones de ejemplo: n igual a cinco produce count siete; n igual a diez produce count cuarenta y dos; n igual a cero produce count uno; n igual a cuatro produce count cinco; n igual a uno produce count uno; n igual a menos tres produce invalid_input porque la función de partición no está definida para argumentos negativos en esta regla de producto; n igual a un decimal o a una cadena no numérica también produce invalid_input. El precio de las llamadas API exitosas es la base publicada de $0.002 por ítem; los fallos de validación no consumen saldo prepago.
Dónde aparecen las particiones enteras en el trabajo real
Como esta capacidad es un motor de parse puro, el precio de la API es la base publicada de $0.002 por ítem exitoso y la validación fallida no consume saldo.
Casos de integración
Análisis de DP y mochila
Dimensionar espacios de estado de descomposición en multiconjuntos y validar fixtures de conteo de particiones en pipelines de DP entera sin tablas en coma flotante.