Твоя пирамида
Пирамида, которую я хочу, чтобы ты построил, целиком состоит из кубов. Он имеет 24 слоя, а N- й слой сверху содержит N 2 кубов, расположенных в квадрате N на N. Пирамида выглядит так:
Чтобы построить пирамиду, вам понадобится запас кубиков. Вам дают 4900 кубов, расположенных в квадрате 70 на 70, который выглядит следующим образом:
(Хорошо, я признаю, что изображение квадрата совершенно не нужно.)
Так как 1 2 + 2 2 + 3 2 + ... + 24 2 = 70 2 , у вас есть ровно правильное количество кубов для построения пирамиды. Все, что вам нужно сделать, это сказать мне, куда должен идти каждый куб.
Твое задание
Вы должны выбрать произвольную биекцию между кубиками в квадрате и кубиками в пирамиде. (Было бы неплохо, если бы в вашем ответе говорилось, какую из 4900! Разных биекций вы используете.)
Затем напишите функцию или программу, которая выполняет следующее:
- Учитывая расположение куба в квадрате 70 на 70 (в виде пары координат
(X,Y)
), - Выведите его местоположение в пирамиде (в виде тройки координат
(A,B,C)
).
Все входные и выходные координаты могут быть либо 0-индексированы, либо 1-индексированы. Предполагая, что 1-индексированный, ваш ввод (X,Y)
будет парой целых чисел от 1 до 70. Ваш вывод (A,B,C)
будет тройкой целых чисел; A
должен быть слой, считающий сверху (между 1 и 24) и (B,C)
должен быть координатами этого куба в этом слое (между 1 и A
).
Например:
- верхний куб пирамиды имеет координаты
(1,1,1)
. - В четырех углах основания пирамиды имеют координаты
(24,1,1)
,(24,1,24)
,(24,24,1)
и(24,24,24)
. - Если вы решите разместить углы квадрата в углах пирамиды, то при вводе
(70,1)
вы можете дать вывод(24,24,1)
.
Вы можете предположить, что в (X,Y)
качестве входных данных вы получите только действительные координаты . Корректность полностью определяется следующим правилом: два разных допустимых входа всегда должны давать два разных допустимых входа.
Это код-гольф : выигрывает самый короткий код.