ForHosting KIT · Matemáticas

Calculadora del número de Bell

B(5) vale 52: hay 52 formas de repartir cinco elementos distintos en grupos no vacíos cuando el orden de los grupos no importa. Escriba cualquier n de 0 a 20 y obtenga el número de Bell exacto, para combinatoria o particiones de conjuntos. Gratis en su navegador.

  • Gratis
  • Funciona en su navegador
  • Sin registro
  • Sus datos no salen de su equipo
Úselo desde WebAPIEmailTelegramApp pronto
Si escribe
Índice n
0
Obtiene
Número de Bell
1

gratis

Qué cuenta un número de Bell

Un número de Bell responde a una pregunta de conteo sencilla: ¿de cuántas formas se puede repartir un conjunto de n elementos distintos en grupos, sin grupos vacíos y sin que importe el orden de los grupos ni el orden dentro de cada uno? Con tres elementos hay 5 formas: todos juntos, cada uno por separado o una de las tres parejas posibles con el elemento restante aparte. La sucesión empieza por 1, 1, 2, 5, 15, 52, 203 y 877 para n de 0 a 7, y crece deprisa. Como el orden de los grupos no cuenta, B(n) también es la suma de los números de Stirling de segunda especie para todas las cantidades posibles de grupos.

Cómo se calcula y dónde se usa

Cada número de Bell se construye a partir de los anteriores. Para obtener el siguiente, la calculadora suma los números de Bell previos, cada uno multiplicado por un coeficiente binomial, la misma regla que hay detrás del triángulo de Bell, de modo que nunca forma un factorial enorme y cada resultado sigue siendo un número entero exacto. El rango va de 0 a 20, el que se usa en los cursos de combinatoria sobre particiones de conjuntos y números de Stirling, donde los casos pequeños se pueden comprobar a mano. Un error frecuente es contar órdenes: repartir en los grupos A y B es la misma partición que B y A, y tratarlas como distintas infla el resultado.

La recurrencia utilizada

Internamente el valor se construye con una recurrencia ascendente en lugar de una tabla de consulta estática. Partiendo de B(0)=1, cada nuevo B(i+1) se acumula como la suma sobre k de C(i,k)·B(k), donde el coeficiente binomial C(i,k) se genera de forma incremental con la actualización multiplicativa c = c·(i−k+1)/k, que evita formar jamás un factorial que pudiera desbordarse.

La suma en curso se pasa por Math.round antes de almacenarse, reparando el minúsculo error de coma flotante que la división puede introducir, de modo que cada B(i) almacenado sigue siendo un entero exacto. Es la misma identidad que subyace al triángulo de Bell, evaluada en O(n²) sumas.

Trabajos de combinatoria

Compruebe recuentos de particiones B(0)–B(20) al enseñar particiones de conjuntos y números de Stirling, con enteros exactos que los estudiantes pueden verificar a mano para n pequeño.

¿Qué calcula esto?

El número de Bell B(n): el número de formas de partir un conjunto de n elementos en bloques no vacíos y sin orden. Devuelve n y también value.

¿Por qué n se limita a 20?

B(20) = 51.724.158.235.372 es el mayor número de Bell que cabe exactamente en un double, así que por encima de 20 el resultado ya no podría ser exacto. n debe ser un entero de 0 a 20.

¿Es exacta la respuesta?

Sí. Cada término se redondea de vuelta a un entero dentro de la recurrencia, así que value es un entero exacto, no una aproximación de coma flotante.

¿De cuántas formas se pueden repartir tres elementos en grupos?

De cinco, que es B(3). Los tres pueden ir juntos, cada uno puede quedar solo, o puede formarse una de las tres parejas posibles mientras el elemento restante queda aparte.

¿Qué relación tienen los números de Bell con los de Stirling?

Un número de Bell es la suma de los números de Stirling de segunda especie con el mismo n, tomados para cada cantidad posible de grupos. Cada número de Stirling cuenta los repartos en exactamente esa cantidad de grupos.

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.

POSThttps://api.kit.forhosting.com/math/bell-number

¿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.

curl -X POST https://api.kit.forhosting.com/math/bell-number \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"n":5}'
{
  "n": 5
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "math.bell_number",
  "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.

Por solicitud$0.002

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.

Introduzca un entero no negativo n (de 0 a 20) y obtenga B(n), el número de formas de partir un conjunto de n elementos en bloques no vacíos y sin orden, devuelto como entero exacto en JSON. Gratis en el navegador o vía API desde $0.002.

Qué cuenta B(n)

Como una partición ignora el orden de los bloques y el orden de los elementos dentro de un bloque, B(n) equivale además a la suma de los números de Stirling de segunda especie sobre todos los posibles recuentos de bloques. El resultado es un entero exacto, nunca un float ni una aproximación, así que el código posterior puede compararlo directamente. Dado un entero no negativo n, este endpoint devuelve B(n), el número de Bell, que cuenta las formas en que un conjunto de n elementos distintos puede partirse en bloques no vacíos y sin orden. B(0) y B(1) valen ambos 1, y luego la secuencia crece 2, 5, 15, 52, 203, 877 para n = 2 hasta 7. El cuerpo de la petición lleva un único campo obligatorio, n, y la respuesta lo devuelve junto a value, el número de Bell calculado, como JSON simple del tipo {"n":5,"value":52}.

La recurrencia utilizada

Cada B(k) intermedio hasta n se calcula una vez y se reutiliza, así que una llamada para n=20 realiza solo unos cientos de operaciones y devuelve de inmediato, sin profundidad de recursión que reventar ni caché de memoización que calentar entre peticiones.

Rango, validación y acceso

La validación es estricta y ocurre antes de cualquier cálculo. Un n negativo, un n fraccionario, cadenas, arrays y un n ausente se rechazan todos del mismo modo. La entrada debe ser un objeto JSON, n debe ser un entero, y debe caer en el rango cerrado de 0 a 20; cualquier otra cosa lanza un error tipado invalid_input cuyo mensaje nombra el campo problemático en lugar de una excepción pelada. La cota superior de 20 es deliberada: B(20) vale 51.724.158.235.372, el mayor número de Bell que aún cabe exactamente en un número de doble precisión de JavaScript, así que el endpoint nunca devuelve en silencio un entero grande redondeado.

Fixtures de prueba

Genere números de Bell conocidos como valores golden para las pruebas unitarias de su propio código de particionado, agrupamiento o enumeración.

Herramientas de secuencias

Rellene consultas de OEIS A000110 u hojas de cálculo en lote a través de la API sin enviar una librería de enteros grandes al cliente.

¿Qué devuelve una entrada incorrecta?

Un error tipado invalid_input que nombra el campo —por ejemplo un n no entero, negativo o fuera de rango, o un n ausente—.

¿Es gratis?

Sí en el navegador como widget tier A. La API cuesta $0.002 por llamada exitosa; las tareas fallidas no se cobran.

Ver la documentación completa del KIT →