Tu piramide
La pirámide que quiero que construyas está hecha completamente de cubos. Cuenta con 24 capas, y la N º capa de la parte superior contiene N 2 cubos dispuestos en una N por cuadrado N. La pirámide se ve así:
Para construir la pirámide, necesitará un suministro de cubos. Te dan 4900 cubos dispuestos en un cuadrado de 70 por 70 que se ve así:
(Bien, admito que la imagen del cuadrado es completamente innecesaria).
Como 1 2 + 2 2 + 3 2 + ... + 24 2 = 70 2 , tienes exactamente el número correcto de cubos para construir la pirámide. Todo lo que tienes que hacer es decirme a dónde debe ir cada cubo.
Tu tarea
Debe elegir una biyección arbitraria entre los cubos en el cuadrado y los cubos en la pirámide. (¡Sería bueno que tu respuesta dijera cuál de las 4900 diferentes biyecciones que estás usando!
Luego, escriba una función o programa que haga lo siguiente:
- Dada la ubicación de un cubo en el cuadrado 70 por 70 (como un par de coordenadas
(X,Y)
), - Salida de su ubicación en la pirámide (como un triple de coordenadas
(A,B,C)
).
Las coordenadas de entrada y salida pueden estar indexadas a 0 o indexadas a 1. Suponiendo que 1 indexado, su entrada (X,Y)
será un par de enteros entre 1 y 70. Su salida (A,B,C)
será un triple de enteros; A
debe ser la capa que cuenta desde la parte superior (entre 1 y 24) y (B,C)
debe ser las coordenadas de ese cubo dentro de esa capa (entre 1 y A
).
Por ejemplo:
- El cubo superior de la pirámide tiene coordenadas
(1,1,1)
. - Las cuatro esquinas de la base de la pirámide tienen coordenadas
(24,1,1)
,(24,1,24)
,(24,24,1)
, y(24,24,24)
. - Si decide colocar las esquinas del cuadrado en las esquinas de la pirámide, en la entrada
(70,1)
puede dar la salida(24,24,1)
.
Puede suponer que solo se le darán coordenadas válidas (X,Y)
como entrada. La corrección está completamente determinada por la siguiente regla: dos entradas válidas diferentes siempre deben dar dos entradas válidas diferentes.
Este es el código de golf : el código más corto gana.