Выход
# # # # # ##### ## # ## #### ####### # # ## #### ## ## # ### ####### # # # # ##### ### # # # # ### ##### ##### # # # ####### ### # ### # ## #### ## # # ### # ####### ## # ## ##### ##### # # # ## # # # # ##### # ## ## ####### # ####### #### ## # ### ### # # # # # ##### # # # # ### ##### # #### ####### ### # ## ## ## # # ####### # # ## ##### # # # # ##### ## # # ####### # # ## ## ## # ### ####### #### # ##### ### # # # # ##### # # # # # ### ### # ## #### ####### # ####### ## ## # ##### # # # # ## # # # ##### ##### ## # ## ####### # ### # # ## #### ## # ### # ### ####### # # # ##### ##### ### # # # # ### ##### # # # # ####### ### # ## ## #### ## # # ####### #### ## # ## ##### # # # # # # ## #### # # # # ### ####### ## # # ## ##### ## # ### # # ## # ### ####### ##### ### # # # # # ## #### #### ## # # # # # # # # ##### ## #### ####### # #### ## ## # ### # # # # ##### # # ### ##### ##### # ####### ### # ### # ## ## # # ### # ####### # ## ##### ##### # # ## # # # ## ## ####### #### ### # # # # # # # # ### #### ####### ## ## # # # ##
Трейлинг допускается Самое короткое решение побеждает.
hint1:
спасибо @Tahg за исправление подсказки1
Ответы:
SOGL V0.12 ,
171614 байтовПопробуй здесь!
При более позднем обновлении
č▓
может быть удалено 12 байт, что преобразует ToS из массива массивов символов многострочной строки в массив строк[["#","#"],[" ","#"]] -> ["##"," #"]
, поскольку┼
горизонтальное добавление плохо работает с массивами массивов символов, чтоI
создает, потому что он также используется для вращения массива. В SOGL массив массивов символов должен быть = массив строк, но многие вещи пока не поддерживают это ..Объяснение:
источник
JavaScript (ES6),
233217213198182170163122 байтаИзменить: Сохранено
1418 байт благодаря @Shaggy. Сохранено 3 байта благодаря @ngn. Сохранено еще 12 байтов благодаря совместной работе. Сохранение 41 байта путем кражи наблюдений @ user202729 о том, что четверти используют отражения, а не вращения. Ungolfed:источник
f=
здесь? Хорошо сделано, кстати.f=
подсчитывать байты, но фрагмент кода не работает без него.LOGO,
375341297295278 + 3 байтаДобавьте 3 байта из-за
-p
флага, который по умолчанию включает перспективный режим, поэтому не нужно запускатьperspective
команду, в целом экономится 9 байтов.Использовать FMSLogo в Windows с форматом новой строки Unix (LF) (в FMSLogo возникают проблемы с анализом формата новой строки CR)
К сожалению, нет "Попробуйте онлайн!" ссылку, потому что я не могу найти какой-либо режим поддержки переводчика онлайн.
Идея: нарисуйте картинку на изображении, затем извлеките пиксели из картинки и напечатайте в качестве вывода.
Разбивка картинки на простые повторяющиеся части:
,
Воспользуйтесь подсказкой выше. Однако, поскольку LOGO не поддерживает отражение, мы можем только смоделировать его, войдя в
perspective
режим 3D ( ) и повернув черепашку на 180 градусов вокруг оси, параллельной экрану компьютера.Это определяет вспомогательную функцию
g
, которая дает 2 параметраl
(длина стороны изображения) иw
(процедура, используемая для рисования изображения), рисует 3 копии своего отраженного изображения. (см. подсказку в вопросе) Процедуруh
выполняют основную процедуру.источник
90 fd
->90fd
и сохранить несколько байтов.05AB1E ,
3026 байтПопробуйте онлайн!
источник
CJam , 30 байтов
Попробуйте онлайн!
источник
Python 2 ,
205195 ... 145144142144 байтаПопробуйте онлайн!
Вдохновленный ответом Нейла .
источник
n>>1
естьn/=2
.a
определяется и затем используется один раз. Замена ссылки на ее значение может сэкономить четыре байта.[...[x],...[x]][z]
выбор .Haskell,
126125113106103 байтПрямая реализация hint1 в спойлере.
Функция
m
генерирует следующую итерацию. Основные функции применяютсяm
6 раз. Детали кm
:Редактировать: @ngn сохранил байт и @Laikoni еще 3. Спасибо!
источник
n$n$n$n$n$n["#"]
корочеiterate n["#"]!!6
:)e=[]:e;foldr(zipWith(:))e
вместо,import Data.List;transpose
а затем сократитьzipWith
.Java 7,
259 238 237200 байтСпасли 2 байта, удалив {} в цикле x, спасибо ngn Спасли
19 байтов от различных изменений назначения, благодаря Джонатану
Спас 24 байта для печати против возврата (не знал, что это было разрешено), и
Спас 13 байтов для изменений цикла, спасибо Невай
Попробуйте онлайн!
Мой первый вызов, и я считаю респектабельным для Java. Использует подсказку 1 (что, кстати, неправильно, но я не могу писать комментарии). Вероятно, дальше можно играть в гольф, этот пропуск был в основном как есть, без красивой печати.
источник
s=1
из цикла for и заменивint s,t,x,y;
наint s=1,t,x,y;
.n[s-1-y][x]=o[y][x];n[y][t-1-x]=o[y][x];
->n[s-1-y][x]=n[y][t-1-x]=o[y][x];
.J ,
3027 байтПопробуйте онлайн!
Оригинальная версия.
Попробуйте онлайн!
источник
Python 2, 586 байт
Попробуйте онлайн.
Python 2,
10321025 байтМне нравится этот еще один. Но это намного дольше. Можно было бы играть в гольф, но в этом нет необходимости. Подход чиновника намного короче.
-7 благодаря Джонатану Фреху
Попробуйте онлайн.
источник
[t]railing spaces
, хотя в вашем решении пропущены некоторые пробелы.x=='!'
->x<'#'
if x.isdigit()
->if"/"<x<"@"
Mathematica,
11290 байтСпасибо Джонатану Фреху за помощь в сохранении 2 байтов!
Попробуйте онлайн! (Mathics)
По некоторым причинам Mathics печатает начальные пробелы во всех строках, кроме первой, когда печатает многострочную строку. Также Mathics не поддерживает оператора
.Объяснение:
{{Reverse@#,Reverse/@#},{" "+0#,#}}
: Представляет реверс по горизонтали, реверс по вертикали, замену всего за" "
и транспонирование (
это оператор транспонирования в Mathematica), соответствующий различным способам отражения или поворота изображения.~Flatten~{{1,3},{2,4}}
: Свести в определенных размерах.Nest[ ... ,{{"#"}},6]
: Применить функцию внутри до{{"#"}}
6 раз.~Riffle~"<literal newline character>"
: Наведите символ новой строки между каждой строкой.""<>
: Объединить все строки вместе.источник
Reverse
наR
и определить,R=Reverse;
чтобы сохранить два байта.C # (.NET Core) ,
10161002980955 байтСпасено 14 байтов благодаря Кевину Круйссену!
Сохранено 47 байт благодаря Джонатану Фреху!
Попробуйте онлайн!
объяснение
Формат вывода хранится в массиве 64-битных чисел со знаком, который идеально подходит, поскольку каждая строка имеет длину 64 символа. Пустые пространства представлены
0
и#
представлены1
.Числа затем конвертируются в двоичную строку, нули проложенный слева , пока строка не должна превышать 64 символов в ширину , а затем
и
0
и1
символы заменяются#
.Код хранится внутри функции lamba, а точнее a
System.Func<string>
.Некоторые константы в
long[]
сокращаются путем выполнения некоторого сдвига битов.источник
long[] n=new[]
?l
не нужен, вы можете сэкономить еще больше байтов .Древесный уголь , 42 байта
Попробуйте онлайн! Ссылка на подробную версию кода. Было бы 25 байт, если бы это работало:
Объяснение:
Вручную сгенерируйте первую рекурсию, поскольку невозможно вращаться вокруг (1, 0,5). (Такое вращение имело бы смысл только если бы оно было на 180 °.)
Зациклите первые пять степеней 2 (1, 2, 4, 8, 16).
Отразите холст вертикально. Это завершает верхнюю левую четверть результата.
Поверните холст на 180 ° вокруг точки на полпути вверх по правой стороне. Копия оказывается в правильном положении для верхней правой четверти результата.
Поверните холст на 90 ° вокруг правого нижнего угла. Копия верхнего правого угла заканчивается в правильном положении для нижнего правого угла результата. Копия верхнего левого угла посторонняя.
Обрежьте холст до нужного нам размера. Обрезка начинается с курсора или верхнего левого края холста, в зависимости от того, что находится внизу справа. Поэтому курсор отправляется на (0, -1000), чтобы он не мешал обрезке.
источник
Дьялог АПЛ , 29 байт
Попробуйте онлайн!
источник
((⊖,⌽)⍪∊,⍉)⍣6⍪⍕#
с⎕ML←0
.Python 2 ,
715711 байтПопробуйте онлайн!
источник
Perl 5 , 452 байта
451 байтовый код + 1 для
-p
.Пакеты все данные в строку, а не красть @ Neil «s правильный ответ .
Обратимый вывод
xxd
для 451-байтового файла:Попробуйте онлайн!
источник
Jq 1,5 ,
538535488476 байтЭто простое представление.
Я еще не пробовал никаких причудливых кодировок.Заменены 0,0 пары с функцией Z.Еще раз спасибо Джонатану Фреху за помощь в устранении 3 байтов!
Количество символов
Пробный прогон
источник
B: rec
и16) as $l|
.if.==0then" "else"#"end
->if.>0then"#"else" "end
.Python 2 ,
174164154 байта (на основе матричных операций)Попробуйте онлайн!
источник
import *
->import*
;in s.tolist()
->in s
Холст , 10 байт
Попробуй это здесь!
источник
JavaScript (Node.js) , 1233 байта
Попробуйте онлайн!
источник
C # (.NET Core) ,
976969 байтПопробуйте онлайн!
источник
<s>969</s>
чтобы вычеркнуть предыдущие байты.C # (.NET Core) , 739 байт
Попробуйте онлайн!
Использует тот же подход, этот другой ответ .
источник
K (нгн / к) ,
323127 байтПопробуйте онлайн!
6{
}/
6 раз сделать+x
транспонирования|x
повернуть вертикально+|+x
повернуть горизонтально,
соединять вертикально,'
соединить горизонтально,[A;B]
так же, какA,B
. это помогает избежать скобок вокругA
и вокруг всего выражения""x
используйте элементыx
как индексы в пустой строке. Индексирование вне границ создает пробелы, поэтому это выражение будет возвращать матрицу всех пробелов того же размера, что иx
источник