Tu reto:
Estás en el piso 0 de un edificio infinitamente alto. En cualquier piso, puedes caminar hacia la ventana y dejar caer un huevo. Su objetivo es descubrir el piso más alto que el huevo puede soportar sin romperse. Sin embargo, tiene un máximo de 3 huevos para resolver esto, pero debe minimizar el número de intentos.
En términos formales:
- Se le da una función
f(n)
que devuelvebool(n <= X)
para un desconocidoX
, donde0 <= X
- Debe devolver el valor de
X
(sin acceder directamente a él) f(n)
solo debe devolverFalse
un máximo de3
veces (en un solo caso de prueba). Si devuelveFalse
más que eso, entonces su respuesta es descalificada.
Restricciones
Su puntaje es el número total de llamadas que realiza f(n)
(en los casos de prueba a continuación)
Si lo desea, puede renunciar a pasar una función y simplemente "simular" la situación anterior. Sin embargo , su algoritmo de resolución no debe saber nada X
.
Su algoritmo no debe codificar los casos de prueba, o un máximo X
. Si tuviera que regenerar los números, o agregar más, su programa debería ser capaz de manejarlos (con una puntuación similar).
Si su idioma no admite enteros de precisión arbitrarios, puede usar el long
tipo de datos. Si su idioma tampoco es compatible, entonces no tiene suerte.
El enésimo caso de prueba se genera utilizando lo siguiente:
g(n) = max(g(n-1)*random(1,1.5), n+1), g(0) = 0
o aproximadamente 1.25^n
Casos de prueba:
0,1,2,3,4,6,7,8,10,14,15,18,20,27,29,40,57,61,91,104,133,194,233,308,425,530,735,1057,1308,1874,2576,3162,3769,3804,4872,6309,7731,11167,11476,15223,15603,16034,22761,29204,35268,42481,56238,68723,83062,95681,113965,152145,202644,287964,335302,376279,466202,475558,666030,743517,782403,903170,1078242,1435682,1856036,2373214,3283373,4545125,6215594,7309899,7848365,8096538,10409246,15103057,20271921,22186329,23602446,32341327,33354300,46852754,65157555,93637992,107681394,152487773,181996529,225801707,324194358,435824227,579337939,600264328,827690923,1129093889,1260597310,1473972478,1952345052,1977336057,2512749509,3278750235,3747691805,5146052509
Este es un desafío de código , ¡y la persona con la puntuación más baja gana!