ForHosting KIT · Matemáticas

Paradoja del hotel de Hilbert

Con tres huéspedes en las habitaciones 1 a 3 y dos llegadas nuevas, cada uno se muda dos habitaciones más allá y quedan libres la 1 y la 2. Escriba su registro y cuántos llegan para ver la nueva habitación de cada huésped. Gratis en su navegador.

  • Gratis
  • Funciona en su navegador
  • Sin registro
  • Sus datos no salen de su equipo
Úselo desde WebAPIEmailTelegramApp pronto

Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.

El hotel de Hilbert es el clásico experimento mental sobre el infinito: un hotel completo con infinitas habitaciones siempre puede alojar más huéspedes, con solo pedir a cada ocupante que se desplace. Usted envía el registro actual —cada huésped con su número de habitación— y cuántos huéspedes nuevos han llegado, y recibe la nueva asignación para cada uno junto con la lista de habitaciones recién liberadas. Un número de llegadas negativo se rechaza, porque los huéspedes no pueden «desllegar». Funciona de forma determinista, sin azar ni llamadas externas, de modo que la misma entrada produce siempre la misma reasignación.

La paradoja, hecha concreta

El experimento mental de David Hilbert imagina un hotel con infinitas habitaciones, todas ocupadas. Cuando llega un nuevo huésped, un hotel lleno corriente debe rechazarlo; el hotel de Hilbert no. El gerente simplemente pide al huésped de la habitación 1 que pase a la 2, al de la 2 que pase a la 3, y así sucesivamente: todos se desplazan una posición y la habitación 1 queda libre de repente.

Si llega un autobús con cuarenta turistas nuevos, todos se desplazan cuarenta habitaciones, liberando las habitaciones 1 a 40. El simulador de la paradoja del hotel de Hilbert realiza exactamente este desplazamiento sobre el registro que usted le proporcione: el número de habitación de cada huésped actual aumenta según el número de llegadas, y las habitaciones liberadas al inicio de la numeración se devuelven explícitamente, para que vea con precisión dónde se alojarían los recién llegados.

La lección contraintuitiva —que un hotel infinito lleno siempre tiene sitio— se convierte en una lista sencilla y verificable de cambios de habitación.

Cómo se calcula el desplazamiento

El algoritmo es deliberadamente simple y totalmente determinista. Usted proporciona una lista de huéspedes actuales, cada uno con un nombre y un número de habitación entero positivo, además del número de nuevas llegadas. El simulador valida el registro —cada habitación debe ser un entero positivo y el número de llegadas un entero no negativo— y luego suma ese número a cada habitación.

Un huésped en la habitación 7 con tres nuevas llegadas termina en la habitación 10. La salida devuelve, para cada huésped, su habitación anterior y su nueva habitación, junto con la lista completa de habitaciones liberadas: los enteros desde 1 hasta el número de llegadas. No hay azar, ni reloj, ni acceso a la red en el cálculo, de modo que llamadas repetidas con la misma entrada devuelven resultados idénticos byte a byte.

Enseñar la paradoja de forma interactiva

Muestre a los estudiantes exactamente a qué habitación se traslada cada huésped cuando llegan uno, diez o mil nuevos huéspedes a un hotel completo.

Demostrar una función determinista de desplazamiento

Ilustre el patrón de «desplazar cada clave en una constante» usado en rehashing y balanceo de carga con un ejemplo memorable.

Generar datos para acertijos y cuestionarios

Produzca asignaciones de habitaciones coherentes de antes y después para acertijos matemáticos sin calcular los desplazamientos a mano.

¿Cuánto cuesta?

También es gratis ejecutarlo en su navegador en esta página con el mismo código.

¿Por qué se rechaza un número de llegadas negativo?

Porque la paradoja solo funciona en una dirección: un hotel infinito lleno siempre puede absorber más huéspedes, pero los huéspedes no pueden «desllegar».

¿La simulación tiene algún componente aleatorio?

No. Es totalmente determinista: sin azar, sin reloj, sin red. La misma entrada siempre devuelve las mismas asignaciones.

¿Cuáles son los límites de entrada?

Cada número de habitación debe ser un entero positivo.

¿Esto modela un hotel realmente infinito?

Simula el paso finito de la paradoja: desplazar un registro dado según un número dado de llegadas. El infinito es la conclusión: el desplazamiento funciona sin importar lo grande que sea el hotel.

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

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

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.

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

Esta API simula exactamente ese movimiento.

Cómo se calcula el desplazamiento

Un número de llegadas negativo se rechaza con un error invalid_input y nunca se cobra, porque la paradoja solo funciona en una dirección: siempre se puede alojar más huéspedes, pero no se puede hacer que «deslleguen».

Dónde encaja

Esta capacidad está pensada para la enseñanza, las demostraciones y las comprobaciones rápidas. Los educadores la usan para convertir una paradoja abstracta en algo que los estudiantes pueden explorar: cambiar el número de llegadas, ver cómo se actualiza cada asignación y confirmar que las habitaciones liberadas siempre coinciden con los recién llegados. También sirve como ejemplo lúdico de una función pura de reasignación: la misma operación de «desplazar cada clave en una constante» aparece en el balanceo de carga, los búferes circulares y los esquemas de rehashing, y este endpoint la demuestra sin ninguna configuración. Funciona gratis en su navegador en esta página con el mismo código que sirve la API, de modo que solo paga cuando la automatiza, a $0.002 por solicitud. Los límites de entrada mantienen el registro razonable —hasta diez mil huéspedes y un millón de llegadas por llamada—, muy por encima de lo que necesita cualquier aula o demostración, y con respuestas instantáneas.

¿Qué contiene el campo freed_rooms?

Los números de habitación liberados por el desplazamiento: los enteros desde 1 hasta el número de llegadas. Son las habitaciones que ocuparían los nuevos huéspedes.

Ver la documentación completa del KIT →