Esto ya está en la lista de “preguntas prohibidas”, así que supongo que es un juego justo.
Para preguntas de este tipo, trato de determinar si el candidato (a) no ha visto este problema antes, (b) puede elaborar algún enfoque de razonamiento, y (c) puede explicarlo, algo como el siguiente. Seguiría las ideas del candidato donde quiera que lideraran, y trataría de descubrir su habilidad para organizar hechos, seguir su propia lógica, abstenerse de BS, y quizás extraer conceptos o fórmulas importantes de la memoria como herramientas. Idealmente, también aprenderé de un candidato una forma nueva o diferente de ver el problema. Si el candidato obtiene “la respuesta correcta” o no es secundario a estas observaciones.
Lo primero es ver cuánto tarda el candidato en reconocer que la búsqueda binaria no funcionaría. Un enfoque básico de búsqueda binaria requiere esencialmente que tengas todos los huevos que puedas necesitar para romper (log 2 n), ciertamente más de 2.
La siguiente idea clave, que se relaciona, es darse cuenta de que tienes que tratar el segundo huevo, es muy diferente al primero. Mientras puede “saltar” con el 1er huevo, solo puede mover 1 piso a la vez con el 2do. Por ejemplo, si suelta el primer huevo del piso 10 y se rompe, su próximo movimiento con el segundo huevo debe ser el piso 1, luego el 2, luego el 3, etc., para saber con certeza qué piso debajo de 10 es el piso más alto sin romper huevos
Ahora, si tiro el primer huevo en el piso N, enfrentaré dos escenarios:
- Se rompe: en la lógica del párrafo anterior, el segundo huevo se eliminará de los pisos 1, 2, …, N-1. Entonces para este escenario, el número de casos más desfavorable de gotas es N.
- No se rompe: ahora me enfrento a un problema recursivo: minimizar el número de gotas usando 2 huevos en un edificio con, efectivamente, 100-N pisos.
La siguiente información útil es darse cuenta de que el número del peor caso para ambos escenarios debe diseñarse para que tenga el mismo valor N, simplemente porque el número de caso más desfavorable para la solución global es el mayor de los dos. Si no son lo mismo, habré optimizado uno a expensas del otro y obtendré un peor resultado en general.
¿Por qué las estufas de inducción funcionan mal a baja potencia?
¿Por qué las bolas de masa hervida y los raviolis flotan a la superficie cuando están listos?
¿Por qué la comida y bebida calientes se enfrían por debajo de la temperatura ambiente?
Entonces, para el escenario n. ° 2 anterior, para mi próxima caída (con el primer huevo), omitiré N-1 pisos. Esto se debe a que ya he usado 1 gota, y si la segunda caída termina rompiendo el huevo, mi peor escenario incluirá otras N-2 gotas, para un total de (1 + 1 + N-2) = N gotas.
Recordando, mis pisos de caída serán algo como esto: N, (N + N-1), (N + N-1 + N-2), … Y quiero minimizar N.
En este punto es bastante fácil (y de hecho preferible) que el candidato simplemente pruebe diferentes valores de N, porque deberían tener algunas suposiciones de “sentido común” sobre lo que N debería ser aproximadamente. Si comienzan en el rango 10-20, convergerán muy rápidamente a un mínimo en:
{14, 14 + 13, 14 + 13 + 12, 14 + 13 + 12 + 11, …} o
{14, 27, 39, 50, 60, 69, 77, 84, 90, 95, 99, 96, 97, 98} como una secuencia del peor de los casos, teniendo 14 gotas, que es el mínimo.
Si comienzan bien fuera del rango de 10-20, y no reconocen el gran desequilibrio en cuestión de segundos, eso sería una mala señal.