¿Hay alguna forma matemática cerrada (o asintótica algo apretada) para "Google Eggs Puzzle"?


8

La siguiente breve descripción del conocido "Google Eggs Puzzle" proviene principalmente del sitio web Google Eggs :

Google Eggs Puzzle: Dado n pisos ym huevos, ¿cuál es el enfoque para encontrar el piso más alto desde el cual los huevos se pueden tirar de manera segura, mientras se minimizan los lanzamientos (no los huevos rotos).

El llamado "piso más alto" en el problema anterior merece una definición más formal:

"más alto": debe haber un piso f (en cualquier edificio lo suficientemente alto) de manera que un huevo caído del piso f se rompa, pero uno que se caiga del piso ( f-1 ) no lo hará. Entonces, f-1 aquí es el piso más alto.

En realidad, la descripción de "más alto" es un extracto del libro "The Algorithm Design Manual (Second Edition)" de Steven S. Skiena. Al ser un ejercicio en el Capítulo 8 "Programación dinámica", hay muchos recursos en la Web dedicados a resolver el rompecabezas por medio de la programación dinámica, como Google Eggs y The Two Egg Problem .

Sin embargo, hay una pregunta del libro anterior:

Muestre que , donde es el número mínimo de lanzamientos. (Nota: he cambiado las anotaciones utilizadas en el libro para mantener la coherencia).E()E(n,m)=Θ(n1m)E()

Es la pregunta que motiva mi problema:

Mi problema: ¿Hay alguna forma matemática cerrada para el "Rompecabezas de huevos de Google" general con n pisos ym huevos, en lugar de recurrencia de programación dinámica y, por supuesto, más estricta que uno?E(n,m)=Θ(n1m)


44
No creo que el límite asintótico sea estrecho. Funciona cuando es una constante, pero si toma , su límite le da una constante, que es falsa. Creo que un límite cerrado es , que reproduce su límite para constante , pero también da como el número de lanzamientos cuando es lo suficientemente grande para apoyar la ingenua búsqueda binaria basada en la estrategia. mm=lognΘ(minkmkn1/k)mlognm
Robin Kothari

@RobinKothari Estoy de acuerdo contigo. Los experimentos numéricos en el material Joy of Egg-Dropping respaldan su observación. Sin embargo, no entiendo el significado de . Como supongo, el parámetro es el número real de huevos en uso. Entonces, ¿qué significa como factor en ? Muchas gracias. Θ(minkmkn1k)kkn1k
hengxin

Puedo tratar de explicar el significado, pero es un poco largo, así que lo publicaré como respuesta.
Robin Kothari

Respuestas:


8

Con m huevos y k mediciones, la mayoría de los pisos que se pueden verificar es exactamente (tal vez dependiendo de la definición exacta). La prueba es trivial por inducción. Esta expresión no tiene forma inversa cerrada pero da buena asintótica.

n(m,k)=(k0)+(k1)++(km),
±1

44
Solo esbozar un poco la estrategia de caída hará que la respuesta sea más completa. Tal vez no sea apropiado, ya que supongo que no es a nivel de investigación. De todos modos, con 2 huevos, puede omitir pisos en su primera caída, y si no se rompe, omita , y si no se rompe, omita , etc. Lo que da como el piso más alto que podría alcanzar utilizando esta estrategia. kk1k2k(k+1)/2
Joe

@domotorp Parece constructivo examinar el rompecabezas desde la perspectiva que acabas de mostrar. Y la ecuación de se puede demostrar por inducción sobre y . Aunque no existe una forma cerrada clara para el lado derecho de esta ecuación, ¿puede dar la expresión asintótica ? n(m,k)mkk(n,m)=Θ(n1m)
hengxin

2
@hengxin, sí, porque es un polinomio en de grado , por lo que esto muestra que mantener constante da . Pero vea el comentario de Robin sobre la pregunta. La pregunta más interesante es si esta expresión exacta permite un límite más preciso al aproximar la cola binomial, por ejemplo, con erf. (km)kmmn(m,k)=Θ(km)
Peter Taylor

2

En mi comentario anterior, dije que quizás es un límite apretado. No estoy seguro sobre el límite inferior, pero dado que solo desea una explicación de lo que significa , puedo explicar la intuición utilizando el límite superior.Θ(minkmkn1k)k

Como habrás adivinado, es la cantidad de huevos que realmente se usa. Eso explica el en el exterior. Ahora, una vez que hemos decidido usar eggs, he aquí una estrategia que funciona: piense en el número como escrito en la base . Entonces , la representación de tendrá "dígitos" (la palabra "dígito" generalmente está reservada para la base 10, pero la usaré aquí), y cada dígito tiene un valor de 0 a . Con nuestros huevos, estamos tratando de extraer los dígitos de uno por uno. Primero comenzamos con el dígito más significativo. Esto se puede determinar arrojando un huevo del piso numeradokminknn1/knkn1/k1kn100..00 , , y así sucesivamente. Después de a lo sumo tiros, hemos aprendido cuál es el bit más significativo, y en el peor de los casos hemos roto solo 1 huevo. Ahora hacemos esto para todos los demás dígitos. Como hay dígitos, necesitaremos tiros.200..00n1/k1kO(kn1/k)

Como comprobación de la cordura, observe que cuando , esta estrategia se reduce a dejar caer los huevos de cada piso uno por uno a partir del piso 1. Cuando , solo estamos trabajando en la base 2. Entonces esto produce el algoritmo de búsqueda binaria.k=1k=logn


1
¡Una característica interesante de la solución de domotorp, a diferencia de la suya, es que no requiere conocerlo de antemano!
Jeffε
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.