Это общая проблема для навигации в 2D матрице. Мы видели это много раз и увидим снова. Итак, давайте поможем нам в будущем и разработаем кратчайшие решения для генерации всех восьми возможных шагов в 2D-матрице.
Вызов
Ваш код должен вывести следующие 8 пар -1,0,1 в любом порядке:
(0,1)
(0,-1)
(1,0)
(-1,0)
(1,1)
(1,-1)
(-1,1)
(-1,-1)
правила
- Там нет ввода.
- Порядок вывода не актуален
- Выход гибкий. Пары чисел просто должны быть различимы
- Это код-гольф , поэтому выигрывает самый короткий ответ в байтах
code-golf
kolmogorov-complexity
matrix
Мертвый Опоссум
источник
источник
(1 + 0i)
?Ответы:
Октава , 24 байта
Попробуйте онлайн!
Я еще не видел этот подход.
Создает список целых чисел
[0, 1, 2, 3, 5, 6, 7, 8]
и преобразует его в троичный, возвращая массив символов:Вычитание
49
(ASCII-значение для1
) из всех символов дает числовой массив:источник
T-SQL,
8078 байтСоздает (постоянную) таблицу t, содержащую
(-1,0,1)
, и выполняет самостоятельное соединение сWHERE
предложением, которое исключает0,0
строку. Таблица t не очищена моим кодом, вы должны удалить ее самостоятельно.К сожалению, почти вдвое длиннее скучного решения ( 44 байта ), поскольку SQL допускает возврат в виде строк:
источник
WHERE t.n OR z.n
? (Вы можете на некоторых, но не на всех диалектах SQL.)An expression of non-boolean type specified in a context where a condition is expected
Pure Bash (без внешних утилит), 36
Попробуйте онлайн!
Баш с седом, 35
Попробуйте онлайн!
источник
cut
36 байтов.echo {-1..1},{-1..1}|sed s/0,0.//
printf %s\\n {-1..1},{-1..1}|grep 1
также 35.Python 2 , 33 байта
Попробуйте онлайн!
Деннис спас
35 байтов, вау. Благодарность!источник
Желе ,
876 байтПопробуйте онлайн!
Мой первый ответ желе! Большое спасибо Деннису за последний кусок головоломки.
Теперь посмотрим, смогу ли я это объяснить ... смеется.
-1 байт благодаря Эрику; -1 байт благодаря мистеру Xcoder и Деннису
источник
3p3_2ẸƇ
3
.R ,
2624 байтаКредиты @JDoe для сохранения еще двух байтов с прямым подходом:
Попробуйте онлайн!
Оригинальный ответ:
Попробуйте онлайн!
Или для 27 байтов
Попробуйте онлайн!
Или для 34 байтов с коэффициентами:
Попробуйте онлайн!
Это последнее решение может быть самым удачным, если результат будет от 1 до 3, а не от -1 до 1.
Смотрите другой ответ R для альтернативных решений с
expand.grid
или сcbind
.источник
c
что не имеет смысла внутри матрицы, поэтому я переключился наpaste
и исходный формат вывода ...paste
Japt ,
131211 байтСохраненный байт благодаря @Shaggy
Попробуйте онлайн! Использует
-R
флаг для размещения каждого элемента в отдельной строке.объяснение
источник
Japt
-Q
,1513 байтЯ уверен, что есть более короткий путь, но мне понравился этот подход.
Срезал два байта благодаря Шегги .
Попробуйте онлайн!
источник
Haskell , 22 байта
Попробуйте онлайн!
Лайкони спас 1 байт.
источник
_:l=mapM(:[1,-1])[0,0]
сохраняет байт. (Взято из ответа Исаака на предыдущий вызов).Perl 6 , 23 байта
Попробуйте онлайн!
источник
05AB1E ,
87 байтПопробуйте онлайн!
объяснение
-1 байт благодаря Emigna!
источник
2Ý<ã
), но выяснял, как убрать средний элемент списка пар .. Я не думал о сортировке по абсолютному значению и убрал первое .. +1 из меня.ʒĀZ
чтобы сохранить 1MATL , 12 байт
Попробуйте онлайн!
Поскольку это месяц MATL, вот порт MATL ответа @ Stewie's Octave. Последовательность [0 1 2 3 5 6 7 8] генерируется как разность установок между [0 ... 8] и 4.
источник
Java 8,
8342 байта-41 байт благодаря @AdmBorkBork с помощью жесткого кодирования ..
Попробуйте онлайн.
Не жестко запрограммированная версия для справки (
83727068 байт ):-11 байт благодаря @ OlivierGrégoire .
-2 байта, создающие порт ответа @ETHproductions на JavaScript (ES6) .
Попробуйте онлайн.
источник
v->{for(int i=9;i-->0;)if(i!=4)System.out.println((i/3-1)+","+(i%3-1));}
.R , 27 байт
Попробуйте онлайн!
30 и 35 байтов:
источник
expand.grid(-1:1,-1:1)[-5,]
составляет 27 байтов.JavaScript (ES6)
Два альтернативных метода, оба длиннее, чем жесткое кодирование.
49 байтов
Попробуйте онлайн!
51 байт
Попробуйте онлайн!
источник
Haskell , 27 байт
Попробуйте онлайн!
Выход есть
[(0,1),(0,-1),(1,0),(1,1),(1,-1),(-1,0),(-1,1),(-1,-1)]
.источник
Haskell ,
2827 байтовПопробуйте онлайн!
источник
Шелуха ,
76 байтЕсть много разных способов (избавление от хитрой / дорогостоящей части
[0,0]
),7 байтов - самый короткий, который я смог найти,благодаря Лео за указание использовать десятичное преобразование (d
) в качестве фильтра:Попробуйте онлайн!
объяснение
Альтернатива, 7 байт
Попробуйте онлайн!
объяснение
источник
tπ2↑3İZ
.PowerShell , 41 байт
Попробуйте онлайн!
Дважды цикл по диапазону
1..-1
, с-n
Ote
Quals в конце концов , чтобы вытащить посторонний0,0
элемент. Каждый из них по отдельности остается в конвейере и неявноWrite-output
при завершении программы дает нам новые строки бесплатно.К сожалению, только вывод строки barebones на два байта короче:
Но это скучно.
источник
Python 2 , 39 байт
Попробуйте онлайн!
источник
J ,
1816 байтПопробуйте онлайн!
источник
echo }.>,{;~0 1 _1
TIOecho}.>,{;~0 1 _1
echo
необходимо?CJam , 13 байтов
Попробуйте онлайн!
объяснение
источник
Befunge-93 , 24 байта
Попробуйте онлайн!
Я чувствую, что в этой задаче отсутствуют ответы из 2D-языков, даже если большинство из них не двигаются по диагонали. Это выводит разделенные пробелами числа, каждая пара которых разделена табуляцией.
источник
F # (моно) , 54 байта
Попробуйте онлайн!
44 байта - благодаря Лайкони:
источник
(0,0)
первым элементом и вызываяSeq.tail
: Попробуйте онлайн!Брахилог , 8 байт
Попробуйте онлайн!
объяснение
источник
MATL , 12 байт
Попробуйте это в MATL Online!
Мой первый серьезный ответ на MATL! Большое спасибо Луису Мендо , Sanchises и DJMcMayhem за помощь.
Как это работает
источник
Perl 5 , 31 байт
Попробуйте онлайн!
источник
-1..1
работать в глобусе?bash
, но не в Perl :(Баш , 30 байт
Попробуйте онлайн!
Печатает завершающий пробел в каждой строке, кроме последней. (Благодаря @Neil - изначально печатался начальный пробел, но завершающий пробел лучше по их комментарию)
источник
Пакетный, 77 байт
63 байта, если разрешен нестандартный разделитель:
источник
Pyth,
119 байтПопробуй здесь
объяснение
Эквивалентно, мы могли бы использовать
t*J+U2_1J
, но это не короче.источник