Введение:
В общем , мы обычно говорим о четырех измерениях: три измерения пространства для x
, y
и z
; и одно временное измерение. Ради этой задачи однако, мы разделим времени измерения в трех , а также: past
, present
, и future
.
Входные данные:
Два ввода-списка. Одна содержит целочисленные x,y,z
координаты, а другая содержит целые годы.
Вывод:
Один из любых четырех отличных и постоянных выходов по вашему выбору. Один, чтобы указать выход space
; один, чтобы указать результат time
; один, чтобы указать результат both space and time
; и один, чтобы указать результат neither space nor time
.
Мы укажем, что мы перешли ко всем трем измерениям пространства, если различия целых кортежей не равны 0 для всех трех измерений.
Мы укажем, что мы прошли все три измерения времени, если есть хотя бы один год в прошлом, хотя бы один год в будущем и хотя бы один год, равный текущему году (как и в настоящем).
Пример:
Входные данные:
Список координат: [{5,7,2}, {5,3,8}, {-6,3,8}, {5,7,2}]
Годовой список:[2039, 2019, 2018, 2039, 2222]
Выход:
постоянный дляspace
Почему?
Эти x
координаты [5,5,-6,5]
. Поскольку они не все одинаковые, мы прошли x
космическое измерение.
Эти y
координаты [7,3,3,7]
. Поскольку они не все одинаковые, мы также прошли y
пространственное измерение.
Эти z
координаты [2,8,8,2]
. Поскольку они не все одинаковые, мы также прошли z
пространственное измерение.
Текущий год есть 2018
. До этого нет лет, поэтому мы не посетили past
измерение времени.
В 2018
годовом списке есть подарок, поэтому мы посетили present
временное измерение.
Существует несколько лет выше 2018
( [2039, 2019, 2039, 2222]
), поэтому мы также посетили future
измерение времени.
Поскольку мы посетили все три space
измерения, но только два из трех time
измерений, результат будет только (константа для) space
.
Правила вызова:
- Вы можете использовать любые четыре различных и постоянных выхода для четырех возможных состояний.
- Ввод может быть в любом разумном формате. Список координат может быть кортежами, внутренними списками / массивами размером 3, строками, объектами и т. Д. Список лет может быть списком объектов даты вместо целых чисел, если это будет полезно для вашего количества байтов.
- Вы можете предположить, что
x,y,z
координаты будут целыми числами, поэтому нет необходимости обрабатывать десятичные числа с плавающей запятой. Любой изx
,y
и / илиz
координат могут быть отрицательными значениями, хотя. - Вы не можете взять предзаказанные списки ввода. Списки ввода должны быть в порядке, указанном в тестовых примерах.
- Вы можете предположить, что все значения года будут в диапазоне
[0,9999]
; и вы можете предположить, что все координаты находятся в диапазоне[-9999,9999]
. - Если у вашего языка нет ЛЮБОГО способа получить текущий год, но вы все равно хотели бы выполнить это задание, вы можете использовать его в качестве дополнительного ввода и отметить свой ответ как (неконкурентный) .
Основные правила:
- Это код-гольф , поэтому выигрывает самый короткий ответ в байтах.
Не позволяйте языкам кода-гольфа отговаривать вас от публикации ответов на языках, не относящихся к кодексу. Попробуйте найти как можно более короткий ответ для «любого» языка программирования. - Стандартные правила применяются к вашему ответу с правилами ввода / вывода по умолчанию , поэтому вы можете использовать STDIN / STDOUT, функции / метод с правильными параметрами и типом возврата, полные программы. Ваш звонок.
- По умолчанию лазейки запрещены.
- Если возможно, добавьте ссылку с тестом для вашего кода (например, TIO ).
- Кроме того, добавление объяснения для вашего ответа настоятельно рекомендуется.
Тестовые случаи:
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]
хорошо (и[-9999,9999]
для координат тоже хорошо.Ответы:
05AB1E , 15 байтов
Выход - это список,
[space, time]
где 1 обозначает,x
а 0 обозначаетno x
Попробуйте онлайн!
объяснение
источник
-.±
вместо.S
(следовательно, +1 байт ..) и‚
(пару) вместо)
Ùg3Q
, который выглядит как самый большой вор, но я не уверен, что это возможно: /ê
какой-то побитовой операцией или дельтами или чем-то, но я не могу найти 3-байтовые альтернативы.Python 2 ,
111109 байтПопробуйте онлайн!
источник
Perl 6 ,
4746 байт-1 байт благодаря nwellnhof
Попробуйте онлайн!
Блок анонимного кода, который принимает два списка и возвращает кортеж с логическими значениями, причем первый элемент указывает, путешествовали ли вы во времени, а второй - не путешествовал ли вы в космосе.
объяснение
источник
Japt, 22 байта
Вводит в виде двумерного массива целых чисел для пространственных измерений и одномерного массива целых чисел за годы. Выходы
2
только для пространства, только1
для времени,3
для обоих и0
ни для одного.Попробуй это
источник
Japt , 25 байт
Я на 100% уверен, что это не лучший подход, но все же ищу какой-то более короткий способ сделать это: c
Возвращает кортеж логических значений. Первое, если вы путешествовали в космосе, и второе, если вы путешествовали во времени
Попробуйте онлайн!
источник
yâ
транспонирует, берет уникальные предметы и транспонирует обратно , так что вы, вероятно, захотите сделать этоUy e_â ʦ1Ã
вместо этого)â
вe
методе на моей первой попытки, тоже, прежде чем перейти егоy
по наитию , чтобы увидеть , если бы работать.q
в отображенном транспонированном массивеtypeof q instanceof Array
... какой удобной ошибки: P Думаю, я не могу исправить это сейчас, пока не выйдет 1.4.6 ...JavaScript (ES6),
104100 байт(space)(time)
24% кода тратится на выяснение, в каком году мы находимся ... \ o /
Попробуйте онлайн!
комментарии
источник
console.log(f([[5,4,2], [3,4,0], [1,4,2], [9,4,4]])([2020])) // neither
R ,
106, 105 байтПопробуйте онлайн!
Вход:
Выведите целочисленное значение, равное:
источник
Пакетный, 353 байта
Примечание. Поскольку запятые являются разделителями аргументов в пакетном режиме, для ввода координат пространства необходимо заключить в кавычки, например:
Explantion:
Отключить нежелательный вывод.
Установите две битовые маски, а также извлеките текущий год. (В локалях ГГГГ-ММ-ДД используется
%date:~,4%
одинаковое количество байтов.)Перебери все аргументы. В
~
причинах значение координат должны быть разделены на отдельные параметры.Проверьте, полностью ли установлены битовые маски, и выведите соответствующий результат.
Посмотрите, является ли это пара координат или координата и год.
Если это координата, то обновите битовую маску пространства в соответствии с тем, был ли посещен соответствующий пространственный размер.
Если это год, обновите битовую маску времени в соответствии с тем, было ли посещено соответствующее измерение времени.
источник
Java 10, 154 байта
Возвращает
1
для пространства ,2
для времени ,3
для обоих , ни0
для одного . Попробуйте это онлайн здесь .Ungolfed:
источник