Twoja piramida
Piramida, którą chcę zbudować, jest zbudowana w całości z kostek. Ma 24 warstwy, a N- ta warstwa od góry zawiera N 2 kostki ułożone w kwadracie N na N. Piramida wygląda następująco:
Aby zbudować piramidę, potrzebujesz zapasów kostek. Otrzymujesz 4900 kostek ułożonych w kwadrat 70 na 70, który wygląda następująco:
(Dobra, przyznaję, że obraz kwadratu jest zupełnie niepotrzebny).
Ponieważ 1 2 + 2 2 + 3 2 + ... + 24 2 = 70 2 , masz dokładnie odpowiednią liczbę kostek, aby zbudować piramidę. Wszystko, co musisz zrobić, to powiedzieć mi, gdzie powinna iść każda kostka.
Twoje zadanie
Powinieneś wybrać dowolny biject pomiędzy sześcianami na kwadracie a sześcianami w piramidzie. (Byłoby miło, gdybyś w swojej odpowiedzi powiedział, którego z 4900! Różnych bijectów używasz.)
Następnie napisz funkcję lub program, który wykonuje następujące czynności:
- Biorąc pod uwagę położenie sześcianu w kwadracie 70 na 70 (jako para współrzędnych
(X,Y)
), - Umieść swoje położenie w piramidzie (jako potrójny układ współrzędnych
(A,B,C)
).
Współrzędne wejściowe i wyjściowe mogą być indeksowane 0 lub indeksowane 1. Zakładając, że 1-indeksowany, twoja wartość wejściowa (X,Y)
będzie parą liczb całkowitych od 1 do 70. Twój wynik (A,B,C)
będzie potrójną liczbą całkowitą; A
powinna być warstwą liczącą od góry (od 1 do 24) i (B,C)
powinna być współrzędnymi tego sześcianu w tej warstwie (od 1 do A
).
Na przykład:
- górny sześcian piramidy ma współrzędne
(1,1,1)
. - Cztery narożniki podstawy piramidy mają współrzędne
(24,1,1)
,(24,1,24)
,(24,24,1)
, i(24,24,24)
. - Jeśli zdecydujesz się umieścić rogi kwadratu w rogach piramidy, wtedy na wejściu
(70,1)
możesz podać wynik(24,24,1)
.
Możesz założyć, że (X,Y)
jako dane wejściowe otrzymasz prawidłowe współrzędne . Prawidłowość jest całkowicie determinowana przez następującą zasadę: dwa różne ważne dane wejściowe powinny zawsze dawać dwa różne ważne dane wejściowe.
To jest golf-golf : wygrywa najkrótszy kod.