Это кажется почти тривиальным, но так как после некоторых усилий я не смог побить буквальное решение в J, я подумал, что это может стать достойным испытанием (хотя, чтобы быть ясным, это не специфичная для J задача).
Название говорит обо всем. Вам просто нужно написать программу или функцию (без аргументов), которая возвращает или печатает:
N NE E SE S SW W NW
Вы можете использовать переводы строк вместо пробелов.
Функция без аргументов, возвращающая массив строк, таких как
['N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW']
также приемлемо.
Буквы могут быть прописными или строчными, но не могут быть смешанными.
0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5
. К сожалению, J-код, необходимый для отображения этих результатов в буквы, оказался дороже, чем литерал.1, 1+i, i, -1+i, -1, -1-i, -i, 1-i
чтобы у вас была одна действительная или мнимая часть на кардинальное направление вместо двух. Это, вероятно , труднее произвести те , хотя, если нет какой - то способ , которым Вы могли бы округлить эти полномочия I от 0? Я не знаю, насколько легко или сложно это было бы в J, но это идея.Ответы:
Холст , 12 байт
Попробуй это здесь!
Строка, просто сжатая.
источник
"NESW "
), а затем в base-5 хранит индивидуальное персонажи.Баш (24 байта)
используя расширение скобки
такой же длины, как жесткое кодирование
однако это становится более интересным при выводе большего количества точек компаса
расширение скобки
в противном случае, если порядок можно изменить (17 байт), хитрость заключается в том, что без кавычек пропускается параметр строки empy.
источник
mount -t proc{,,}
cp file{,.bak}
Морнингтон Полумесяц ,
43953823 байтаПопробуйте онлайн!
Поскольку ожидать, что вы все это прочтете, немного, позвольте мне дать краткий обзор моего подхода. Основная идея состоит в том, чтобы хранить 3 копии персонажей
N
,E
,S
,W
на различных станциях на линии круга, через банк - Хаммерсмит. Эти символы созданы с начала названия станции в Чаринг-Кросс. Затем постройтеиз середины хорошо выбранного названия станции, используя Mile End и Charing Cross, и сохраните его в банке, чтобы его можно было собрать в Hammersmith при объединении. Наконец, объедините персонажей одного за другим в Паддингтоне, скопировав их снова через Банк - Хаммерсмит, если их нужно будет использовать позже.
Я думаю, что текущее решение довольно близко к оптимальному с этой стратегией, по крайней мере, с точки зрения количества посещенных станций: только 2 раза я использовал станцию только для транзита:
Все остальные посещения станций были, если я не забыл, либо сохранением / извлечением чего-либо полезного, либо (частью) использованием способности станций.
Что касается длин линий, я попытался выбрать самые короткие имена на Circle Line, но там может быть небольшое улучшение. Возможно, что хранение чего-либо в округе может сбрить несколько байтов.
источник
Ne
asden,Sw
iss Cottage, Acton Town
и Mansion House
) 2. Попробуйте использовать Дело в том, что Паддингтон облегчает объединение "W", а неW
. Для «обновления» Паддингтона требуются дополнительные затраты, поэтому он может ничего не получить.PHP , 19 байт
Попробуйте онлайн!
Убирая это с пути. Кто-то сделает это в конце концов.
источник
Brainfuck ,
142139131119 байтПопробуйте онлайн!
Просто зациклите 10 раз, чтобы заполнить ячейки 30, 70, 80 и 90, затем переместитесь назад и вперед и отрегулируйте значения ячеек, чтобы вывести необходимые символы. Не сильно отличается от стандартного «Привет, мир!».
источник
Brain-Flak , 204 байта
Попробуйте онлайн!
источник
MarioLANG ,
249221 байтПопробуйте онлайн!
источник
Deadfish ~ ,
188183 байта-5 благодаря кальмару
Попробуйте онлайн!
источник
{i}dc
в конце 183Формула Excel,
5957 байтСледующее должно быть введено как формула массива ( Ctrl+ Shift+ Enter):
После ввода формулы в виде формулы массива выделите ее в строке формул и оцените, используя, F9чтобы вернуть результат, например:
До:
После:
Как это устроено
ADDRESS
Функция возвращает строку , представляющую ссылку на основе два параметров,row
иcol
. Третий параметр контролирует, какой тип ссылки возвращается, абсолютную или относительную ссылку. Например,=ADDRESS(1,2,4)
возвращает"B1"
.Мы можем предоставить массив
ADDRESS
и использовать его как формулу массива для возврата нескольких результатов, например,=ADDRESS(1,{1,2,3},4)
возвратов"A1","B1","C1"
.Поэтому, в моем ответе, массив, предоставленный -
ADDRESS
это просто номера столбцов, относящиеся к требуемым точкам компаса, например, Столбец 14 является столбцомN
, Столбец 369 является столбцомNE
.Тем не менее, мы еще не закончили здесь , так как все возвращаемые ссылки имеют ряд включены, например,
N1
,NE1
. Поэтому мы просто используемSUBSTITUTE
для удаления1
из всех ссылок.источник
=IF(1,"N NE E SE S SW W NW")
действительным?Треугольность , 71 байт
Попробуйте онлайн!
В последней строке есть два пробела, чтобы попасть в число байтов, необходимое для треугольности.
источник
Древесный уголь , 14 байтов
Попробуйте онлайн! Ссылка на подробную версию кода ... которая является просто строкой, которая должна быть напечатана, так как автодебозировщик заботится о сжатии строки.
Печать несжатой строки занимает 19 байт, поскольку Charcoal печатает ASCII буквально для печати. Лучший алгоритмический ответ, который я мог придумать, к сожалению, занимает 20 байтов:
Попробуйте онлайн! Вывод с использованием формата массива (объединение элементов в пробелах будет стоить два байта). Работает, замечая, что буквы строки
SNWE
используются только тогда, когда текущий внешний индекс равен или равен 1 (по модулю 8) в любом направлении от соответствующего элемента списка индексов4,0,6,2
.источник
мозговой трах , 117 байт
Попробуйте онлайн!
Этот код сначала создает символы «EN SW» в памяти, а затем перемещается назад и вперед для их печати. Пространство посередине, потому что оно печатается чаще всего. N и S и W и E никогда не появляются вместе, поэтому они находятся на противоположных сторонах памяти. Для оптимизации некоторые из окончательных уменьшений происходят во время фазы вывода.
источник
Python 2 ,
62615853 байтаПопробуйте онлайн!
Не отлично, но, по крайней мере, не простой отпечаток ..
источник
Желе ,
1615 байтПолная программа печати текста
Попробуйте онлайн!
16 ...
Ссылка niladic, которая выдает список списков (строчных) символов.
Попробуйте онлайн!
Альтернатива 15 как niladic Link , который дает список (строчных) символов (с пробелами):
“¡XÇŀqỵÑ’ṃ“¡⁴ṁ»
.источник
Commodore BASIC (TheC64Mini, C64, C128, VIC-20 и т. Д.) Использовано 28 байтов токена BASIC
В Commodore BASIC вам не требуется закрывающая кавычка
PRINT
илиLET
операторы, поскольку интерпретатор автоматически закрывает их, это сохраняет один токен BASIC.В качестве альтернативы можно просто использовать прямой режим следующим образом:
Commodore BASIC 23 символа PETSCII (+
RETURN
для выполнения)Я не уверен, как посчитать количество байтов, использованных в этом случае, как в соответствии с интерпретатором,
?
иPRINT
использовать то же количество байтов, и в памяти нет ни одной программы.источник
PRINT
также может быть заменен?
, сохраняя четыре байта.PRINT
и?
использовать такое же количество жетонов BASIC. Я не считаю символы PETSCII, поскольку они не очень отражают объем доступной памяти, используемой интерпретатором.Japt , 16 байт
Возвращает массив строчных букв. Сжатая строка составляла 18 байт, но
a
вместо этого использовалась в качестве разделителя, а затем разбивалась на нее, что сокращалось.Попробуйте - нижний колонтитул форматирует вывод.
источник
Deadfish ~ , 138 байт
Попробуйте онлайн!
Таким образом, вывод в нижнем регистре с символами новой строки лучше, чем по умолчанию (верхний регистр с пробелами).
Этот код был сгенерирован моим оптимизатором, написанным на C ++ (спасибо squid за другую идею оптимизации!):
источник
Пакетный файл, 19 байт
В вопросе никогда не говорилось, что вы должны были выводить
N NE E SE S SW W NW
и ничего больше,или что он не мог выйти из-за ошибки, после этогоэтот код только выдает ошибку, но не выходит из-за нее.Выход
Пакетный файл, 25 байт
Только
N NE E SE S SW W NW
вывод без ошибок или сбоев.источник
'N NE E SE S SW W NW'
- вы получите что-то вроде:N NE E SE S SW W NW - command not found
Python2, 59 байт
Магическое число - это объединенные трехбитные индексы в строку символов, в обратном порядке, чтобы мы могли начать итерации в LSB.
Я потратил некоторое время, пытаясь сжать магическое число, но повторение строки символов с помощью умножения, чтобы учесть дополнительные индексы, не сработало из-за необходимости кодирования для пробела - лучшее, что я получил для перекрывающихся индексов в поиске, добавил больше символов в Строка, состоящая из цифр, удаленных из магического числа (включая пару неудачных небезразличных в середине):
источник
K (нгн / к) ,
2322 байта-1 байт благодаря ngn!
Попробуйте онлайн!
J ,
3430 байтПопробуйте онлайн!
источник
" "
<->"W"
(0
<->4
в базе 5), пробел будет в конце, и мы можем удалить его, потому что индексация строк за пределами границ в любом случае дает пробел:"WNES"@5\7108085518230
05AB1E , 14 байтов
Попробуйте онлайн!
Это печатает строку кроме строчных.
источник
•
за -1Брахилог , 19 байт
Попробуйте онлайн!
Выходы в виде списка.
ḍ₄ḍᵐc
сохраняет два байта при записи семи пробелов и делает весь предикат строковым литералом, так что, по крайней мере, он связывает PHP ...Я пытался быть умным с этим
3⟦{;"NESW"↺₍h₂a₀ᶠ}ᵐc
, но он не мог правильно понять SE или NW, и все равно на байт длиннее.источник
Пробел , 151 байт
Буквы
S
(пробел),T
(табуляция) иN
(новая строка) добавляются только как подсветка.[..._some_action]
добавлено только для пояснения.Попробуйте онлайн (только с необработанными пробелами, вкладками и новыми строками).
Объяснение:
Константа
84
генерируется этой Java-программой, которую я написал для другой задачи, на которую я ответил в Whitespace .источник
MathGolf ,
2017 байт-3 байта благодаря @maxb .
Попробуйте онлайн.
Объяснение:
источник
É
иÄ
в этом случае) все еще иногда смущает меня .. Иногда я не уверен, когда я использую или не должен использовать эти кодовые блоки. Выm+
не используете один, например. НоÄ
это кодовый блок размера 1. ЯmÅî╪
только что попытался посмотреть, что произошло, поэтому теперь я понимаю, почемуÄ
для начала существует кодовый блок размера 1 . :)) Спасибо за -3 байта. Я еще многому учусь.{}
.mÅî╪
создает отображение, но у него нет цикла for внутри отображения. Если вы напишитеm{î{╪}}
, возможно, вам будет легче увидеть, что код «map to: loop <index> times и вращает строку в каждом цикле». Причина, по которойm+
его нет, заключается в том, что некоторые команды имеют неявные 1-байтовые блоки (map, filter, Reduce и т. Д.), Ноî
не являются командой, предназначенной для использования в сочетании с блоком.{...}
, но я вроде забыл,integer{
что это цикл for. :) Теперь этоîÄ╪
имеет больше смысла. Спасибо за объяснение!CSS ,
4239 байт(спасибо каменному паукообразному за исправленную версию)
источник
body:after{content:"N NE E SE S SW W NW"
Семя , 6014 байта
Создает следующую программу befunge:
источник
Ходор , 177 байт
Попробуйте онлайн!
источник
Сборка (x86, Linux), 68 байт
Источник:
Код в основном взят из кратчайшего ELF для "Hello world \ n"?
источник
Желе , 16 байт
Попробуйте онлайн!
С нижнего колонтитула для печати разделены пробелом
Ниладная ссылка, которая возвращает список строк. На 2 байта короче (и, возможно, интереснее), чем сжатая строка в Jelly.
источник
C # (интерактивный компилятор Visual C #) , 24 байта
Попробуйте онлайн!
источник