ForHosting KIT · Matemática

Paradoxo do hotel de Hilbert

Com três hóspedes nos quartos 1 a 3 e duas chegadas novas, cada um se muda dois quartos adiante e ficam livres o 1 e o 2. Digite o seu registro e quantos chegam para ver o novo quarto de cada hóspede. 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

Roda direto no seu navegador. Grátis, sem cadastro — seus dados não são enviados para lugar nenhum.

O hotel de Hilbert é o clássico experimento mental sobre o infinito: um hotel lotado com infinitos quartos sempre consegue acomodar mais hóspedes, bastando pedir que cada hóspede atual suba de quarto. Você envia o registro atual — cada hóspede e seu número de quarto — mais a quantidade de novos hóspedes, e recebe de volta a nova atribuição de quartos para todos, junto com a lista dos quartos que acabaram de ser liberados. Uma contagem negativa de chegadas é rejeitada, pois hóspedes não podem "deschegar". A execução é determinística, sem aleatoriedade e sem chamadas externas, de modo que a mesma entrada sempre produz a mesma realocação.

O paradoxo, de forma concreta

O experimento mental de David Hilbert imagina um hotel com infinitos quartos, todos ocupados. Quando um novo hóspede chega, um hotel comum lotado precisa recusá-lo; o hotel de Hilbert, não. O gerente simplesmente pede ao hóspede do quarto 1 que vá para o quarto 2, ao do quarto 2 que vá para o 3, e assim por diante — todos sobem um quarto, e o quarto 1 fica livre de repente.

Se um ônibus com quarenta turistas chega, todos sobem quarenta quartos, liberando os quartos 1 a 40. O simulador do paradoxo do hotel de Hilbert executa exatamente esse deslocamento no registro que você fornecer: o número do quarto de cada hóspede atual aumenta pela contagem de chegadas, e os quartos liberados no início da numeração são devolvidos explicitamente, para que você veja exatamente onde os recém-chegados ficariam.

A lição contraintuitiva — de que um hotel infinito lotado sempre tem vaga — transforma-se em uma lista simples e verificável de mudanças de quarto.

Como o deslocamento é calculado

O algoritmo é deliberadamente simples e totalmente determinístico. Você fornece uma lista de hóspedes atuais, cada um com nome e número de quarto inteiro positivo, além do número de novas chegadas. O simulador valida o registro — todo quarto deve ser um inteiro positivo e a contagem de chegadas deve ser um inteiro não negativo — e então soma a contagem a cada número de quarto.

Um hóspede no quarto 7 com três novas chegadas vai parar no quarto 10. A saída devolve, para cada hóspede, seu quarto antigo e o novo, junto com a lista completa de quartos liberados: os inteiros de 1 até a contagem de chegadas. Não há aleatoriedade, relógio nem acesso à rede no cálculo, portanto chamadas repetidas com a mesma entrada retornam resultados idênticos byte a byte.

Ensine o paradoxo interativamente

Mostre aos alunos exatamente para qual quarto cada hóspede se muda quando uma, dez ou mil novas chegadas aparecem em um hotel lotado.

Demonstre uma função determinística de deslocamento

Ilustre o padrão de "subir cada chave por uma constante", usado em rehash e balanceamento de carga, com um exemplo memorável.

Gere dados para enigmas e questionários

Produza atribuições consistentes de quartos, antes e depois, para problemas de matemática sem calcular os deslocamentos à mão.

Quanto custa?

Também é grátis executar no seu navegador nesta página, com o mesmo código.

Por que uma contagem negativa de chegadas é rejeitada?

Porque o paradoxo funciona em uma só direção: um hotel infinito lotado sempre absorve mais hóspedes, mas hóspedes não podem "deschegar".

A simulação tem algum componente aleatório?

Não. Ela é totalmente determinística — sem aleatoriedade, sem relógio, sem rede. A mesma entrada sempre retorna as mesmas atribuições.

Quais são os limites de entrada?

Todo número de quarto deve ser um inteiro positivo.

Isso modela um hotel realmente infinito?

Ele simula o passo finito do paradoxo: deslocar um registro dado por uma contagem de chegadas dada. O infinito é a conclusão — o deslocamento funciona não importa o tamanho do hotel.

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/hilberts-hotel-paradox

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/hilberts-hotel-paradox \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"guests":[{"guest":"Ada","room":1},{"guest":"Alan","room":2},{"guest":"Grace","room":3}],"new_arrivals":2}'
{
  "guests": [
    {
      "guest": "Ada",
      "room": 1
    },
    {
      "guest": "Alan",
      "room": 2
    },
    {
      "guest": "Grace",
      "room": 3
    }
  ],
  "new_arrivals": 2
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "math.hilberts_hotel_paradox",
  "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.

max_guests10000
max_arrivals1000000
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.

Esta API simula exatamente esse deslocamento.

Como o deslocamento é calculado

Uma contagem negativa é rejeitada com erro invalid_input e nunca é cobrada, pois o paradoxo funciona em uma só direção — sempre dá para acomodar mais hóspedes, mas não dá para fazê-los "deschegar".

Onde ele se encaixa

Esta capacidade foi criada para ensino, demonstrações e verificações rápidas. Educadores a usam para transformar um paradoxo abstrato em algo que os alunos podem explorar: mude a contagem de chegadas, veja cada atribuição se atualizar e confirme que os quartos liberados sempre correspondem aos recém-chegados. Também funciona como um exemplo lúdico de função pura de realocação — a mesma operação de "deslocar cada chave por uma constante" aparece em balanceamento de carga, buffers circulares e esquemas de rehash, e este endpoint a demonstra sem nenhuma configuração. Ele roda grátis no seu navegador nesta página, com o mesmo código que atende a API, então você paga apenas ao automatizá-lo, a US$ 0,002 por requisição. Os limites de entrada mantêm o registro saudável — até dez mil hóspedes e um milhão de chegadas por chamada — muito além do que qualquer sala de aula ou demonstração precisa, mantendo as respostas instantâneas.

O que o campo freed_rooms contém?

Os números dos quartos liberados pelo deslocamento: os inteiros de 1 até a contagem de chegadas. São os quartos que os novos hóspedes ocupariam.

Ver a documentação completa do KIT →