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ą; Apowinna 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.

