Wprowadzenie:
Generalnie zazwyczaj mówią o czterech wymiarach: trzy wymiary przestrzeni dla x
, y
oraz z
; i jeden wymiar czasowy. Przez wzgląd na to wyzwanie, jednak my podzielić na trzy wymiar czasu także: past
, present
, i future
.
Wejście:
Dwie listy wejściowe. Jedna zawiera x,y,z
współrzędne całkowite , a druga zawiera lata całkowite.
Wynik:
Jedno z czterech dowolnych i stałych wyników według własnego wyboru. Jeden do wskazania wyniku space
; jeden do wskazania wyniku time
; jeden do wskazania wyniku both space and time
; i jeden do wskazania wyniku neither space nor time
.
Wskażemy, że poszliśmy do wszystkich trzech wymiarów przestrzeni, jeśli różnice liczb całkowitych nie są równe 0 dla wszystkich trzech wymiarów.
Wskażemy, że poszliśmy do wszystkich trzech wymiarów czasowych, jeśli minął co najmniej jeden rok w przeszłości, co najmniej jeden rok w przyszłości i co najmniej jeden rok równy bieżącemu rokowi (tak jak obecnie).
Przykład:
Dane wejściowe:
lista współrzędnych: lista [{5,7,2}, {5,3,8}, {-6,3,8}, {5,7,2}]
lat:[2039, 2019, 2018, 2039, 2222]
Wyjście:
Stała dlaspace
Dlaczego?
Te x
współrzędne są [5,5,-6,5]
. Ponieważ nie wszystkie są takie same, przeszliśmy przez x
wymiar kosmiczny.
Te y
współrzędne są [7,3,3,7]
. Ponieważ nie wszystkie są takie same, przeszliśmy również przez y
wymiar kosmiczny.
Te z
współrzędne są [2,8,8,2]
. Ponieważ nie wszystkie są takie same, przeszliśmy również przez z
wymiar kosmiczny.
Obecny rok to 2018
. Nie ma lat wcześniej, więc nie odwiedziliśmy past
wymiaru czasu.
Na 2018
liście rocznej jest prezent, więc odwiedziliśmy present
wymiar czasowy.
Istnieje wiele lat powyżej 2018
( [2039, 2019, 2039, 2222]
), więc odwiedziliśmy również future
wymiar czasu.
Ponieważ odwiedziliśmy wszystkie trzy space
wymiary, ale tylko dwa z trzech time
wymiarów, wynikiem będzie tylko (stała dla) space
.
Zasady konkursu:
- Możesz użyć dowolnych czterech różnych i stałych wyników dla czterech możliwych stanów.
- Dane wejściowe mogą mieć dowolny rozsądny format. Lista współrzędnych może być krotkami, wewnętrznymi listami / tablicami o rozmiarze 3, łańcuchami, obiektami itp. Lista lat może być listą obiektów daty zamiast liczb całkowitych, jeśli przydałaby się twoja liczba bajtów.
- Możesz założyć, że
x,y,z
współrzędne będą liczbami całkowitymi, więc nie musisz obsługiwać miejsc po przecinku. Którekolwiek zx
,y
i / lubz
współrzędne mogą być ujemne, choć. - Nie można pobrać list wejściowych w przedsprzedaży. Listy wejściowe powinny być w kolejności wyświetlanej w przypadkach testowych.
- Możesz założyć, że wszystkie wartości roku będą w zakresie
[0,9999]
; i możesz założyć, że wszystkie współrzędne są w zakresie[-9999,9999]
. - Jeśli twój język nie ma ŻADNEGO sposobu na odzyskanie bieżącego roku, ale nadal chcesz wykonać to wyzwanie, możesz wziąć to jako dodatkowy wkład i oznaczyć swoją odpowiedź jako (niekonkurującą) .
Główne zasady:
- To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach.
Nie pozwól, aby języki kod-golfowe zniechęcały Cię do publikowania odpowiedzi w językach niekodujących golfa. Spróbuj znaleźć możliwie najkrótszą odpowiedź na „dowolny” język programowania. - Do odpowiedzi mają zastosowanie standardowe reguły z domyślnymi regułami We / Wy , więc możesz używać STDIN / STDOUT, funkcji / metody z odpowiednimi parametrami i typem zwracanych, pełnych programów. Twoja decyzja.
- Domyślne luki są zabronione.
- Jeśli to możliwe, dodaj link z testem kodu (tj. TIO ).
- Zalecane jest również dodanie wyjaśnienia do odpowiedzi.
Przypadki testowe:
Coordinates-input: [{5,7,2}, {5,3,8}, {-6,3,8}, {5,7,2}]
Years-input: [2039, 2019, 2018, 2039, 2222]
Output: space
Coordinates-input: [{0,0,0}, {-4,-4,0}, {-4,2,0}]
Years-input: [2016, 2019, 2018, 2000]
Output: time
Coordinates-input: [{-2,-2,-2}, {-3,-3,-3}]
Years-input: [2020, 1991, 2014, 2018]
Output: both
Coordinates-input: [{5,4,2}, {3,4,0}, {1,4,2}, {9,4,4}]
Years-input: [2020, 1991, 2014, 2017, 2019, 1850]
Output: neither
[0,9999]
jest w porządku (i[-9999,9999]
dla współrzędnych też jest w porządku.Odpowiedzi:
05AB1E , 15 bajtów
Dane wyjściowe to lista, w
[space, time]
której 1 oznacza,x
a 0 oznaczano x
Wypróbuj online!
Wyjaśnienie
źródło
-.±
zamiast.S
(stąd +1 bajt ..) i‚
(parę) zamiast)
Ùg3Q
, który wydaje mi się największym złodziejem bajtów, ale nie jestem pewien, czy to możliwe: /ê
operacją bitową, deltami lub czymś innym, ale nie jestem w stanie znaleźć żadnej 3-bajtowej alternatywy.Python 2 ,
111109 bajtówWypróbuj online!
źródło
Perl 6 ,
4746 bajtów-1 bajt dzięki nwellnhof
Wypróbuj online!
Anonimowy blok kodu, który pobiera dwie listy i zwraca krotkę booleanów, z których pierwszym jest to, czy podróżowałeś w czasie, a drugim - czy nie podróżowałeś w przestrzeni.
Wyjaśnienie
źródło
Japt, 22 bajty
Pobiera dane wejściowe jako tablicę liczb całkowitych 2D dla wymiarów przestrzeni i tablicę liczb całkowitych 1D na lata. Dane wyjściowe
2
tylko dla przestrzeni, tylko1
dla czasu,3
dla obu i0
dla żadnego.Spróbuj
źródło
Japt , 25 bajtów
Jestem w 100% pewien, że nie jest to najlepsze podejście, wciąż szukam krótszego sposobu na zrobienie tego: c
Zwraca krotkę booleanów. Pierwszy dotyczy podróży w kosmosie, a drugi podróży w czasie
Wypróbuj online!
źródło
yâ
transponuje, bierze unikatowe przedmioty i transponuje z powrotem , więc prawdopodobnie będziesz chciał to zrobićUy e_â ʦ1Ã
)â
we
metodzie na mojej pierwszej próbie, też, przed przeniesieniem goy
na kaprys, aby zobaczyć, gdyby to działało.q
z mapowanych transponowanych macierzytypeof q instanceof Array
... co za wygodny błąd: P Chyba nie mogę go teraz naprawić, dopóki nie wypuszczę 1.4.6 ...JavaScript (ES6),
104100 bajtów(space)(time)
24% kodu wydaje się na ustalenie, w którym roku jesteśmy ... \ o /
Wypróbuj online!
Skomentował
źródło
console.log(f([[5,4,2], [3,4,0], [1,4,2], [9,4,4]])([2020])) // neither
R ,
106, 105 bajtówWypróbuj online!
Wejście :
Podaj wartość całkowitą równą:
źródło
Partia, 353 bajtów
Uwaga: Ponieważ przecinki są separatorami argumentów w pakiecie, w celu wprowadzenia współrzędnych przestrzeni należy podać np
Wyjaśnienie:
Wyłącz niechciane wyjście.
Skonfiguruj dwie maski bitowe, a także wyodrębnij bieżący rok. (W ustawieniach regionalnych RRRR-MM-DD należy używać
%date:~,4%
tej samej liczby bajtów.)Pętla nad wszystkimi argumentami. Do
~
przyczyn wartości współrzędnych być podzielone na oddzielne parametry.Sprawdź, czy maski bitowe są w pełni ustawione, i wyślij odpowiedni wynik.
Sprawdź, czy jest to para współrzędnych, czy współrzędna i rok.
Jeśli jest to współrzędna, zaktualizuj maskę bitową przestrzeni zgodnie z tym, czy odwiedzono odpowiedni wymiar przestrzenny.
Jeśli to rok, zaktualizuj maskę bitową zgodnie z tym, czy odwiedzono odpowiedni wymiar czasu.
źródło
Java 10, 154 bajtów
Zwraca
1
za przestrzeń ,2
za czas ,3
za obie ,0
za żadną . Wypróbuj online tutaj .Nie golfowany:
źródło