Для этой задачи вы должны создать программу, которая принимает целое число x
и выводит свой источник x
много раз.
правила
Это codegolf, цель состоит в том, чтобы в вашей программе было как можно меньше байтов
Если вы отправляете функцию, функция должна принимать
x
в качестве параметра и либо возвращать, либо печатать весь кодx
много раз в STDOUT. Тело функции также не должно быть пустымЕсли вы отправляете лямбду, вам не нужно присваивать ее переменной
Стандартные ограничения лазейки применяются.
Пустые программы запрещены
Ваша программа должна работать только тогда, когда
x
целое число больше или равно 0Ваша программа также не может напрямую читать какую-либо часть своего исходного кода
x
быть0
, или мы можем ограничить это положительными целыми числами?x
может быть, любое целое число больше или равно 0Ответы:
Python 2 , 50 байт
Обратите внимание на запятую и новую строку.
Попробуйте онлайн!
источник
sys.stdout.write("2")
после него.Japt , 14 байт
Попробуйте онлайн!
объяснение
источник
RProgN 2 , 8 байтов
RPGN2 Loop Quine работает особенно хорошо для этого!
Попробуйте онлайн!
источник
Mathematica,
4033 байтаСпасибо lanlock4 за сохранение 7 байтов!
Чистая функция, принимающая неотрицательный целочисленный аргумент.
ToString[#0]
стандартный метод Mathematica для доступа к определению текущей чистой функции;StringRepeat[..., #1]
объединяет (вводит) копии этой строки вместе. Например,выходы:
источник
StringJoin @@ Table[ToString[#0], #1] & [2]
дает мне ошибку.Table::itform: Argument 2 at position 2 does not have the correct form for an iterator.
Table[x,5]
вернусь{x,x,x,x,x}
в Mathematica 10.2 и далее, но в Mathematica 10.1 это дает такую ошибку (она ожидаетTable[x,{5}]
).StringJoin @@ Table
наStringRepeat
.V 11 байт
Попробуйте онлайн!
Это чрезвычайно тривиальная модификация стандартного расширяемого V quine . Мы просто используем
À
для запуска arg1 раз.источник
постоянный ток , 31 байт
Попробуйте онлайн!
Объяснение:
источник
Python 2, 70 байт
Это решение работает, если
x=0
. Есть один завершающий перевод строки.Попробуйте онлайн
Python 2, 60 байт (неверно)
Это предполагает это
x>=1
, но ОП уточнил, чтоx
может быть ноль. Есть один завершающий перевод строки.Попробуйте онлайн
источник
Недогрузка , 12 байт
Попробуйте онлайн!
Передача функции, потому что у Underload нет другого способа получить ввод. (Ссылка TIO показывает число 4, указанное в качестве ввода, и добавляет код для печати полученного результата).
Это просто универсальный конструктор quine
(a(:^)*):^
, плюс~^
(«сделайте количество копий равным аргументу»).источник
Japt , 14 байт
Попробуйте онлайн!
источник
Желе , 10 байт
Попробуйте онлайн!
Как это устроено
источник
GNU Make , 49 байтов
Make будет объединять копии одним пробелом, поэтому мне нужно добавить дополнительный пробел в конце и удалить его с
strip
промежуточным, чтобы точно выполнить требование.источник
$0
в Make функции это не то же самое, что в оболочках. Это имя переменной, которая называется функцией. См gnu.org/savannah-checkouts/gnu/make/manual/html_node/...call
это делает, подставляя$0
и$1
фактические параметры - это просто строка интерполяция, так же , как в Python%
.Pyth, 17 байт
Попробуйте онлайн!
Тривиальное продолжение довольно известной
jN*2]"jN*2]
квинны, но, вероятно, ее можно сыграть в гольфисточник
Betaload , 203 байта
Новые строки добавлены для ясности:
Я дал себе ограничение, что он должен читать из STDIN, а не из верхней части стека, как обычно бы получал ответ с недогрузкой. Я также использовал правильный десятичный ввод, который составляет большую часть кода.
Объяснение:
Я обертываю программу в обёртку от quine:
(a(:^)*
и):^
. Это означает, что весь код внутри оболочки quine будет иметь исходный код программы в нижней части стека.Чтобы преобразовать цифры в обычную церковную цифру, я использую технику замены каждой цифры на код для умножения на 10 и добавления этой цифры:
Здесь много повторений, поэтому давайте скомпилируем его в подпрограмму, которая возьмет церковную цифру с вершины стека и использует ее для построения «строки цифр:»
Я поместил это в новую среду, чтобы к ней можно было быстро получить доступ:
Теперь я могу создать код замены для
R
.R
использует верхние элементы стека для формирования таблицы поиска, чтобы заменить строку из STDIN на код Betaload. Это работает так:Однако мы можем использовать только что созданную подпрограмму для генерации сегментов кода:
Когда
R
он запускается, он преобразует входные данные в серию подпрограмм, которые образуют церковную цифру. Когда эта подпрограмма выполняется, она создает эту церковную цифру на следующем элементе в стеке (0, который был размещен ранее). Это означает, что послеR^
этого верхним значением в стеке будет церковная цифра. Затем^
мы еще раз применим числительную церковь к последнему элементу в стеке (исходный код программы), чтобы получить ответ.Забавный факт: у меня был доктор медицины для этого представления в течение нескольких месяцев. Я сохранил его после недопонимания вопроса (который я больше не могу найти). Я должен был выкопать это из моей Корзины, чтобы отправить это здесь.
источник
05AB1E , 23 байта
Попробуйте онлайн!
источник
Python 2 , 41 байт
Попробуйте онлайн!
Делает любопытный Hacky вывода , используя
input
вместо того , чтобыprint
, так какprint
имеет странную ошибку , связанные с печатью новой строки , когда он не должен ... . Выход с ошибкой EOF.Объяснение:
источник
05AB1E ,
2725 байтовПопробуйте онлайн!
источник
Pyth, 13 байт
Тестирование
Стандартный Pyth Quine плюс два
*
для повторения.источник
Perl, 48 байт
\47
восьмеричный выход для одинарной кавычки ('
). Он интерпретируется внутри двойных кавычек ("
), но не внутри одинарных.источник
Javascript ES6,
2737 байтредактировать
+10 байт, если
f=
должны отображатьсяисточник
f=
?toString
функцию.f.toString()
илиf
тот же, но не отображает имя функцииf
этого способа означает обращение к своему собственному источнику.CJam ,
2012 байтов8 байтов сэкономлено благодаря Мартину Эндеру
Попробуйте онлайн!
Exaplanation
источник
PHP, 194 байта
Попробуйте онлайн!
Совсем не гольф, как обычно бывает на b64.
источник
Go ,
257254 байтаЭто причиняет мне боль.
Попробуйте онлайн!
источник
Microscript II, 22 байта:
Microscript II, 20 байт (но технически недопустимый, поскольку он обращается к исходному коду блока кода):
источник
C
144116 байтовисточник
Python 3, 69 байт
источник
C # (интерактивный компилятор Visual C #) , 115 байт
Попробуйте онлайн!
источник
05AB1E , 17 байт
Модификация по умолчанию квин
0"D34çý"D34çý
, добавив×?
.Попробуйте онлайн.
Объяснение:
источник