Вы должны написать программу или функцию на любом языке, который выводит этот шаблон:
~|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||~
|~|||||||||||||||||||||||||||||||||||||||||||||||||||||||||~|
||~|||||||||||||||||||||||||||||||||||||||||||||||||||||||~||
|||~|||||||||||||||||||||||||||||||||||||||||||||||||||||~|||
||||~|||||||||||||||||||||||||||||||||||||||||||||||||||~||||
|||||~|||||||||||||||||||||||||||||||||||||||||||||||||~|||||
||||||~|||||||||||||||||||||||||||||||||||||||||||||||~||||||
|||||||~|||||||||||||||||||||||||||||||||||||||||||||~|||||||
||||||||~|||||||||||||||||||||||||||||||||||||||||||~||||||||
|||||||||~|||||||||||||||||||||||||||||||||||||||||~|||||||||
||||||||||~|||||||||||||||||||~|||||||||||||||||||~||||||||||
|||||||||||~|||||||||||||||||~|~|||||||||||||||||~|||||||||||
||||||||||||~|||||||||||||||~|||~|||||||||||||||~||||||||||||
|||||||||||||~|||||||||||||~|||||~|||||||||||||~|||||||||||||
||||||||||||||~|||||||||||~|||||||~|||||||||||~||||||||||||||
|||||||||||||||~|||||||||~|||||||||~|||||||||~|||||||||||||||
||||||||||||||||~|||||||~|||||||||||~|||||||~||||||||||||||||
|||||||||||||||||~|||||~|||||||||||||~|||||~|||||||||||||||||
||||||||||||||||||~|||~|||||||||||||||~|||~||||||||||||||||||
|||||||||||||||||||~|~|||||||||||||||||~|~|||||||||||||||||||
Вывод состоит из 20 строк по 61 символа в каждой.
правила
- Стандартные лазейки запрещены
- В конце вывода может быть один завершающий символ новой строки
- В каждой строке вывода не должно быть конечных пробелов
Без завершающего символа новой строки контрольная сумма md5 вывода fde4e3b4606bf9f8c314131c93988e96
.
С завершающим символом новой строки контрольная сумма md5 для вывода равна 1f0b43db4fec6594be202c8339024cb7
.
Это код-гольф , поэтому выигрывает самый короткий код в байтах.
Ответы:
C (gcc) ,
97828180 байтПроиграл 15 байтов после изучения
abs
встроенного в C, еще одного байта, спасибо Rogem за то, что он указал, что объявления моих переменных могут быть перемещены в функцию, и еще один байт, который получен с помощью roofcat за предложениеx=31;--x+31
вместоx=-31;++x<31
.Попробуйте онлайн!
Это приводит к завершающему переводу строки. Функция
f
выполняет вывод.объяснение
Выходные данные могут быть представлены в виде графика.
(
+
S показаны только для пояснения и представляют оси.)Уравнением этого графа являетсяy=abs(10−abs(x)) как можно увидеть здесь в этой ссылке на граф Десмоса .
В функции
f
у нас есть два цикла for, которые перебирают каждую координату в этом графе.y
идет от20
к1
и х идет от-30
к30
.Для каждого
x
мы проверяем,abs(10-abs(x))
равно ли этоy
, делаяabs(10-abs(x))-y
в троице. Если они равны, это приводит0
к ошибочному значению в C, в противном случае он будет иметь некоторое положительное значение. Тогда в троицеabs(10-abs(x))-y?"|":"~"
мыprintf
соответственно.И после каждой строки мы выводим новую строку, используя
puts("")
, и так выводит функция с завершающим переводом строки.источник
f(x,y)
вместоx,y;f()
Древесный уголь ,
1615 байт-1 байт благодаря notjagan
Попробуйте онлайн!
источник
M
и двигаясь неявно.R ,
7067 байт3 байта благодаря Джузеппе.
Попробуйте онлайн!
источник
""
значение1
на -1.Желе ,
1816 байтовПопробуйте онлайн!
источник
Python 2,7,
16313813513311391 байтПопробуйте онлайн!
Изменить 1: -25 байт: изменил алгоритм после того, как я почувствовал себя немного амбициозным. :П
Редактировать 2: -3 байта: предоставлено Фелипе Нарди Батиста
Редактировать 3: -2 байта: любезность shooqie
Редактировать 4: -20 байтов: любезно предоставлено
Редактировать 5: -22 байта: любезно предоставлено Leaky Nun
источник
a,b,c='1','2','3'
же, какa='1';b='2';c='3'
и то же самое, что и размещение каждого из них в отдельной строке, но вы можете получить байты, распаковав такие строки, какa,b,c='123'
n<m
короче чемn-m<0
?/// , 231 байт
Попробуйте онлайн! Или посмотрите его в интерактивном режиме здесь !
источник
WendyScript , 65 байт ( исключая перевод строки)
Попробуйте онлайн!
Следует тому же принципу, что и ответ C, приведенный выше. Первая строка - это
abs
функция, вторая - две для циклов и выходов~
или|
на основе графика. Последний""
используется для вывода новой строки после каждого циклаy
.источник
abs
функции от основной функции.Vim, 59 байт
Где
^[
это<ESC>
ключисточник
:11<CR>
может быть11G
Japt , 32 байта
Попробуйте онлайн! Обязательно расширьте поле вывода.
объяснение
Установите
U
в|
неоднократных 20 раз.Устанавливается
V
в range[0,9]
(AÆ
), сопоставляемый с помощью:U
(неявного) с символом в индексеX
(текущее значение), установленным в (h
)~
.Установите
W
дляV
каждой повернутой строки на 10 (A
) символов вправо.Создайте массив:
V, W, U
иV
с каждой строкой переверните (w
). Это теперь левая половина фигуры, повернутая на 90 ° влево.Выровняйте массив (
c
), разбейте его на угол (ê
), поверните на 90 ° вправо (z
) и соедините с помощью новых строк (·
).источник
Кисть , 36 байт
не конкурирующих
объяснение
Это напоминает мне, мне нужно добавить операцию зеркала.
источник
Октава ,
1575754 байтаГольф это дальше вниз, благодаря другим ответам и комментариям.
Я просто подошел к нему, как и другой ответ, с помощью функции abs (10-abs (x)), а затем использовал правильные символы ASCII для печати изображения.
источник
Pyth , 22 байта
Попробуйте онлайн!
источник
V , 30 байтов
Попробуйте онлайн!
источник
Желе , 18 байт
Попробуйте онлайн!
источник
Жевательная резинка , 90 байт
Попробуйте онлайн!
источник
MathGolf , 22 байта
Попробуйте онлайн!
объяснение
Вероятно, от этого можно забрать 2-3 байта, я посмотрю, что я могу сделать.
источник
C (gcc) , 75 байтов
Попробуйте онлайн!
Полностью изменен ответ коров
источник
Позитрон , 165 байт
Попробуйте онлайн!
Я думаю, что в Позитроне слишком много ошибок. Я должен обновить его до TIO, потому что тогда на
++
самом деле будет работать.источник
Mathematica,
7875 байтовза исключением того,
\n
что заменяется фактическим переводом строки. Попробуйте онлайн! (По какой-то причине в начале строк в Mathics есть лишние пробелы, но в Mathematica это работает нормально .)Я придумала собственное представление, но затем Kritixi Lithos добавил их объяснение, и оно было очень похоже на мое, но с использованием немного более умной формулы, так что теперь это всего лишь порт этого ответа. (Пойди и прочитай это и скажи!)
источник
Жевательная резинка , 93 байта
Попробуйте онлайн!
источник
JavaScript (ES6), 87 байт
источник
Луа, 193 байта
Обратите внимание, что Lua не может распечатать что-либо без создания новой строки. По этой причине я должен нарушить одно из правил.
Минимально минимизируется в значительной степени:
Некоторые изменения были сделаны во время минификации, и все это делает программу менее расширяемой, но меньшей.
Попытайся: https://tio.run/##PY7LCoMwEEX3@YqQVVJTcWwRCp0vKV1oNa1QJ0UjGPr49TRq6eoO91wOcx/LEDp8vs1IF9da4lc5aa9aI6djkSt3a4h1pynxmwLOKD5iJog7sD2Pmf9yD@u0QrKOV6yhmkVTAtonUla8pHoLKm5BqZmtHHSmTCw9ZhoOvLZsQCHMogRdwNoMaSr/L9hevMSiePQtOTnMdwhf
Я не уверен, что кто-то делал это раньше, но я попытался минимизировать, загрузив программу в виде строки и используя gsub (поиск / замена). Безусловно, это сделало программу больше. Однако, если эта программа будет достаточно большой, она выдаст меньше байтов.
Из-за его относительной близости к реальному результату (240 байт, всего 41) я решил опубликовать его. Если бы в этой программе было 350+ байтов, вероятно, было бы сокращение.
источник
Java 8, 113 байт
Я чувствую чеки (
j==i|j+i==60|i>9&(j-i==20|j+i==40)
можно определенно играть в гольф, объединяя несколько чеков в один).Объяснение:
Попробуй это здесь.
источник
Perl 5 , 79 байт
Попробуйте онлайн!
источник
Tcl , 104 байта
Попробуйте онлайн!
Tcl , 105 байт
Попробуйте онлайн!
Tcl , 109 байт
Попробуйте онлайн!
Tcl,
143 133 123110По-прежнему очень безрассудно, но я буду развивать его после:
демонстрация
источник
05AB1E ,
2019 байтовПопробуйте онлайн.
Объяснение:
20Ýû31∍û
генерирует список:источник