ForHosting KIT · Matemática

Calculadora de número de Bell

B(5) vale 52: existem 52 formas de dividir cinco elementos distintos em grupos não vazios quando a ordem dos grupos não importa. Digite qualquer n de 0 a 20 e receba o número de Bell exato, para combinatória ou partições de conjuntos. Grátis no seu navegador.

  • Grátis
  • Funciona no seu navegador
  • Sem cadastro
  • Seus dados não saem do seu aparelho
Use pelo WebAPIE-mailTelegramApp em breve
Se você digitar
Índice n
0
Você obtém
Número de Bell
1

grátis

O que um número de Bell conta

Um número de Bell responde a uma pergunta de contagem simples: de quantas formas um conjunto de n elementos distintos pode ser dividido em grupos, sem grupos vazios e sem importar a ordem dos grupos nem a ordem dentro de cada um? Com três elementos há 5 formas: todos juntos, cada um separado ou um dos três pares possíveis com o elemento restante à parte. A sequência começa com 1, 1, 2, 5, 15, 52, 203 e 877 para n de 0 a 7, e cresce rápido. Como a ordem dos grupos não conta, B(n) também é a soma dos números de Stirling de segunda espécie para todas as quantidades possíveis de grupos.

Como é calculado e onde é usado

Cada número de Bell é construído a partir dos anteriores. Para obter o próximo, a calculadora soma os números de Bell anteriores, cada um multiplicado por um coeficiente binomial, a mesma regra por trás do triângulo de Bell, então nunca forma um fatorial enorme e cada resultado continua sendo um número inteiro exato. O intervalo vai de 0 a 20, o usado nos cursos de combinatória sobre partições de conjuntos e números de Stirling, em que os casos pequenos podem ser conferidos à mão. Um erro comum é contar ordens: dividir nos grupos A e B é a mesma partição que B e A, e tratá-las como diferentes infla o resultado.

A recorrência usada

Internamente o valor é construído com uma recorrência de baixo para cima, em vez de uma tabela de consulta estática. Partindo de B(0)=1, cada novo B(i+1) é acumulado como a soma sobre k de C(i,k)·B(k), onde o coeficiente binomial C(i,k) é gerado de forma incremental com a atualização multiplicativa c = c·(i−k+1)/k, o que evita jamais formar um fatorial que poderia estourar.

A soma corrente passa por Math.round antes de ser armazenada, reparando o pequeno erro de ponto flutuante que a divisão pode introduzir, de modo que cada B(i) armazenado permanece um inteiro exato. Esta é a mesma identidade que fundamenta o triângulo de Bell, avaliada em O(n²) adições.

Trabalhos de combinatória

Verifique as contagens de partição B(0)–B(20) ao ensinar partições de conjunto e números de Stirling, com inteiros exatos que os alunos podem conferir à mão para n pequenos.

O que isto calcula?

O número de Bell B(n): o número de maneiras de particionar um conjunto de n elementos em blocos não vazios e não ordenados. Ele devolve n e retorna value.

Por que n é limitado a 20?

B(20) = 51.724.158.235.372 é o maior número de Bell que cabe exatamente em um double, então acima de 20 o resultado já não poderia ser exato. n deve ser um inteiro 0–20.

A resposta é exata?

Sim. Cada termo é arredondado de volta para um inteiro dentro da recorrência, de modo que value é um inteiro exato, não uma aproximação de ponto flutuante.

De quantas formas três elementos podem ser divididos em grupos?

De cinco, que é B(3). Os três podem ficar juntos, cada um pode ficar sozinho, ou pode se formar um dos três pares possíveis enquanto o elemento restante fica à parte.

Qual é a relação entre os números de Bell e os de Stirling?

Um número de Bell é a soma dos números de Stirling de segunda espécie com o mesmo n, para cada quantidade possível de grupos. Cada número de Stirling conta as divisões em exatamente aquela quantidade de grupos.

Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.

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

Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.

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"
  }
}

A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.

por chamadaUS$ 0,002

Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.

HTTPCódigoO que significa
401unauthorizedToken ausente ou inválido. Confira o header Authorization.
402insufficient_balanceSaldo insuficiente para esta tarefa. Faça uma recarga e tente de novo.
404unknown_typeEsse tipo de tarefa não existe. Confira o campo type no catálogo.
429rate_limitedMuitas requisições em pouco tempo. Espere um instante e tente de novo.

Informe um inteiro não negativo n (0 a 20) e obtenha B(n), o número de maneiras de particionar um conjunto de n elementos em blocos não vazios e não ordenados, retornado como um inteiro exato em JSON. Grátis no navegador ou via API a partir de US$ 0,002.

O que B(n) conta

Como uma partição ignora a ordem dos blocos e a ordem dos elementos dentro de um bloco, B(n) também é igual à soma dos números de Stirling de segunda espécie sobre todas as contagens possíveis de blocos. O resultado é um inteiro exato, nunca um float ou uma aproximação, de modo que o código a jusante pode compará-lo diretamente. Dado um inteiro não negativo n, este endpoint retorna B(n), o número de Bell, que conta as maneiras pelas quais um conjunto de n elementos distintos pode ser particionado em blocos não vazios e não ordenados. B(0) e B(1) ambos valem 1, e então a sequência cresce 2, 5, 15, 52, 203, 877 para n = 2 até 7. O corpo da requisição carrega um único campo obrigatório, n, e a resposta o devolve ao lado de value, o número de Bell calculado, como JSON simples tal como {"n":5,"value":52}.

A recorrência usada

Cada B(k) intermediário até n é calculado uma vez e reutilizado, de modo que uma chamada para n=20 executa apenas algumas centenas de operações e retorna de imediato, sem profundidade de recursão para estourar e sem cache de memoização para aquecer entre requisições.

Faixa, validação e acesso

A validação é estrita e acontece antes de qualquer cálculo. A entrada deve ser um objeto JSON, n deve ser um inteiro, e deve cair na faixa fechada de 0 a 20; qualquer outra coisa lança um erro tipado invalid_input cuja mensagem nomeia o campo problemático em vez de uma exceção nua. O limite superior de 20 é deliberado: B(20) é igual a 51.724.158.235.372, o maior número de Bell que ainda cabe exatamente em um número de precisão dupla de JavaScript, de modo que o endpoint nunca retorna silenciosamente um inteiro grande arredondado. n negativo, n fracionário, strings, arrays e um n ausente são todos rejeitados da mesma forma.

Fixtures de teste

Gere números de Bell conhecidamente corretos como valores golden para testes unitários do seu próprio código de particionamento, agrupamento ou enumeração.

Ferramentas de sequências

Preencha consultas OEIS A000110 ou planilhas em lote pela API sem enviar uma biblioteca de inteiros grandes para o cliente.

O que uma entrada inválida retorna?

Um erro tipado invalid_input nomeando o campo — por exemplo um n não inteiro, negativo ou fora da faixa, ou um n ausente.

É grátis?

Sim no navegador como um widget tier A. A API custa US$ 0,002 por chamada bem-sucedida; tarefas com falha não são cobradas.

Ver a documentação completa do KIT →