Introducción:
En general solemos hablar de cuatro dimensiones: tres dimensiones espaciales para x, yy z; y una dimensión de tiempo. Por el bien de este reto, sin embargo, vamos a dividir la dimensión temporal en tres así: past, present, y future.
Entrada:
Dos listas de entrada. Uno que contiene x,y,zcoordenadas enteras y otro que contiene años enteros
Salida:
Una de las cuatro salidas distintas y constantes de su elección. Uno para indicar la salida space; uno para indicar la salida time; uno para indicar la salida both space and time; y uno para indicar la salida neither space nor time.
Indicaremos que fuimos a las tres dimensiones espaciales si las diferencias de las tuplas enteras no son 0 para las tres dimensiones.
Indicaremos que fuimos a las tres dimensiones de tiempo si hay al menos un año en el pasado, al menos un año en el futuro y al menos un año igual al año actual (por lo tanto, en el presente).
Ejemplo:
Entrada:
Lista de coordenadas: [{5,7,2}, {5,3,8}, {-6,3,8}, {5,7,2}]
Lista de años:[2039, 2019, 2018, 2039, 2222]
Salida:
constante paraspace
¿Por qué?
Las xcoordenadas son [5,5,-6,5]. Como no son todos iguales, hemos pasado por la xdimensión espacial.
Las ycoordenadas son [7,3,3,7]. Como no son todos iguales, también hemos pasado por la ydimensión espacial.
Las zcoordenadas son [2,8,8,2]. Como no son todos iguales, también hemos pasado por la zdimensión espacial.
El año actual es 2018. No hay años antes de esto, por lo que no visitamos la pastdimensión del tiempo.
Hay un 2018regalo en la lista de años, así que visitamos la presentdimensión del tiempo.
Hay varios años arriba 2018( [2039, 2019, 2039, 2222]), por lo que también visitamos la futuredimensión del tiempo.
Como hemos visitado las tres spacedimensiones, pero solo dos de las tres timedimensiones, la salida solo será (la constante para) space.
Reglas de desafío:
- Puede usar cuatro salidas distintas y constantes para los cuatro estados posibles.
- La entrada puede estar en cualquier formato razonable. La lista de coordenadas puede ser tuplas, listas internas / matrices de tamaño 3, cadenas, objetos, etc. La lista de años puede ser una lista de objetos de fecha en lugar de números enteros también si beneficiaría su recuento de bytes.
- Puede suponer que las
x,y,zcoordenadas serán enteras, por lo que no es necesario manejar decimales de coma flotante. Cualquiera de losx,y, y / ozcoordenadas pueden ser valores negativos, sin embargo. - No puede tomar las listas de entrada pre ordenadas. Las listas de entrada deben estar en el orden que se muestra en los casos de prueba.
- Puede asumir que todos los valores del año estarán en el rango
[0,9999]; y puede asumir que todas las coordenadas están en el rango[-9999,9999]. - Si su idioma no tiene NINGUNA forma de recuperar el año en curso, pero aún así le gustaría hacer este desafío, puede tomarlo como entrada adicional y marcar su respuesta como (no competitiva) .
Reglas generales:
- Este es el código de golf , por lo que la respuesta más corta en bytes gana.
No permita que los lenguajes de code-golf lo desanimen a publicar respuestas con lenguajes que no sean codegolf. Trate de encontrar una respuesta lo más breve posible para 'cualquier' lenguaje de programación. - Las reglas estándar se aplican a su respuesta con las reglas de E / S predeterminadas , por lo que puede usar STDIN / STDOUT, funciones / método con los parámetros adecuados y programas completos de tipo retorno. Tu llamada.
- Las lagunas predeterminadas están prohibidas.
- Si es posible, agregue un enlace con una prueba para su código (es decir, TIO ).
- Además, se recomienda agregar una explicación para su respuesta.
Casos de prueba:
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]está bien (y[-9999,9999]para las coordenadas también está bien.)Respuestas:
05AB1E , 15 bytes
La salida es una lista
[space, time]donde 1 representaxy 0 representano xPruébalo en línea!
Explicación
fuente
-.±lugar de.S(de ahí el byte +1) y‚(par) en lugar de)Ùg3Q, que se siente como el ladrón de bytes más grande, pero no estoy seguro de que sea posible: /êalguna operación bit a bit o deltas o algo, pero no puedo encontrar ninguna alternativa de 3 bytes.Python 2 ,
111109 bytesPruébalo en línea!
fuente
Perl 6 ,
4746 bytes-1 byte gracias a nwellnhof
Pruébalo en línea!
Bloque de código anónimo que toma dos listas y devuelve una tupla de booleanos, siendo el primer elemento si viajó en el tiempo y el segundo si no viajó en el espacio.
Explicación
fuente
Japt, 22 bytes
Toma datos como una matriz 2D de enteros para las dimensiones del espacio y una matriz 1D de enteros para los años. Salidas
2solo para espacio, solo1para tiempo,3para ambos y0para ninguno.Intentalo
fuente
Japt , 25 bytes
Estoy 100% seguro de que este no es el mejor enfoque, todavía estoy buscando una forma más corta de hacer esto: c
Devuelve una tupla de booleanos. La primera es si viajaste en el espacio y la segunda si viajaste en el tiempo
Pruébalo en línea!
fuente
yâtranspone, toma elementos únicos y transpone de nuevo , por lo que probablemente querrá hacerlo en suUy e_â ʦ1Ãlugar)âdentro delemétodo en mi primer intento, también, antes de moverloypor capricho para ver si funcionaba.qde los arreglos transpuestos mapeados,typeof q instanceof Array... qué error conveniente: P Supongo que no puedo arreglarlo ahora hasta liberar 1.4.6 ...JavaScript (ES6),
104100bytes(space)(time)El 24% del código se gasta para determinar en qué año estamos ... \ o /
Pruébalo en línea!
Comentado
fuente
console.log(f([[5,4,2], [3,4,0], [1,4,2], [9,4,4]])([2020])) // neitherR ,
106, 105 bytesPruébalo en línea!
Entrada:
Salida de un valor entero igual a:
fuente
Lote, 353 bytes
Nota: Dado que las comas son separadores de argumentos en Batch, para ingresar las coordenadas de espacio, debe citar y, por ejemplo,
Explantación
Apague la salida no deseada.
Configure dos máscaras de bits y también extraiga el año actual. (En YYYY-MM-DD, las configuraciones regionales se usan
%date:~,4%para el mismo recuento de bytes).Recorre todos los argumentos. Las
~causas valores de las coordenadas se dividan en los diferentes parámetros.Compruebe si las máscaras de bits están completamente configuradas y generan el resultado apropiado.
Vea si se trata de un par de coordenadas o una coordenada y un año.
Si se trata de una coordenada, actualice la máscara de bits de espacio según se haya visitado la dimensión espacial relevante.
Si es un año, actualice la máscara de bits de tiempo según se haya visitado la dimensión de tiempo relevante.
fuente
Java 10, 154 bytes
Devuelve
1por espacio ,2por tiempo ,3por ambos ,0por ninguno . Pruébelo en línea aquí .Sin golf:
fuente