Aby sprostać temu wyzwaniu, musisz utworzyć program, który pobiera liczbę całkowitą x
i wysyła swoje źródło x
wiele razy.
Zasady
To jest codegolf, celem jest gra w golfa w programie, aby miał najmniejszą liczbę bajtów
Jeśli prześlesz funkcję, funkcja musi przyjąć
x
jako parametr i albo zwrócić lub wydrukować cały kodx
wiele razy do STDOUT. Treść funkcji również nie może być pustaW przypadku przesłania lambda nie jest wymagane przypisanie jej do zmiennej
Obowiązują standardowe ograniczenia luk .
Puste programy są zabronione
Twój program musi działać tylko wtedy, gdy
x
jest liczbą całkowitą większą lub równą 0Twój program może również nie czytać bezpośrednio żadnej części kodu źródłowego
x
być0
, czy możemy ograniczyć go do dodatnich liczb całkowitych?x
być może dowolna liczba całkowita większa lub równa 0Odpowiedzi:
Python 2 , 50 bajtów
Zwróć uwagę na przecinek końcowy i znak nowej linii.
Wypróbuj online!
źródło
sys.stdout.write("2")
po nim.Japt , 14 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
RProgN 2 , 8 bajtów
W tym celu szczególnie dobrze sprawdza się pętla RProgN2 Loop!
Wypróbuj online!
źródło
Mathematica,
4033 bajtówDzięki lanlock4 za oszczędność 7 bajtów!
Czysta funkcja przyjmująca nieujemną liczbę całkowitą.
ToString[#0]
jest standardowym sposobem na uzyskanie dostępu do definicji bieżącej funkcji czystej;StringRepeat[..., #1]
łączy (wejściowe) kopie tego ciągu razem. Na przykład,daje:
źródło
StringJoin @@ Table[ToString[#0], #1] & [2]
wyskakuje mi błąd.Table::itform: Argument 2 at position 2 does not have the correct form for an iterator.
Table[x,5]
powróci{x,x,x,x,x}
w Mathematica 10.2 i późniejszych wersjach, ale w Mathematica 10.1 daje taki błąd (oczekujeTable[x,{5}]
).StringJoin @@ Table
zStringRepeat
.V , 11 bajtów
Wypróbuj online!
Jest to bardzo trywialne modyfikację standardowego V rozszerzalny Quine'a . Po prostu używamy go
À
do uruchomienia arg1 razy.źródło
dc , 31 bajtów
Wypróbuj online!
Wyjaśnienie:
źródło
Python 2, 70 bajtów
To rozwiązanie działa, jeśli
x=0
. Jest jeden końcowy znak nowej linii.Wypróbuj online
Python 2, 60 bajtów (niepoprawny)
Zakłada się to
x>=1
, ale OP wyjaśnił, żex
może to być zero. Jest jeden końcowy znak nowej linii.Wypróbuj online
źródło
Niedociążenie , 12 bajtów
Wypróbuj online!
Podanie funkcji, ponieważ niedociążenie nie ma innego sposobu na przyjęcie danych wejściowych. (Łącze TIO pokazuje liczbę 4 podaną jako dane wejściowe i dodaje kod do wydruku wynikowego wyniku).
Jest to po prostu uniwersalny konstruktor quine
(a(:^)*):^
plus~^
(„zrób liczbę kopii równą argumentowi”).źródło
Japt , 14 bajtów
Wypróbuj online!
źródło
Galaretka , 10 bajtów
Wypróbuj online!
Jak to działa
źródło
Marka GNU , 49 bajtów
Make połączy kopie pojedynczym odstępem, więc muszę dołączyć dodatkowy znak odstępu na końcu i usunąć go
strip
pomiędzy, aby wiernie przestrzegać wymagań.źródło
$0
w Make funkcji to nie to samo, co w powłokach. Jest to nazwa zmiennej, którą wywołuje funkcja. Zobacz gnu.org/savannah-checkouts/gnu/make/manual/html_node/…call
robimy, to podstawianie$0
i stosowanie$1
rzeczywistych parametrów - to prosta interpolacja ciągów, tak jak w Pythonie%
.Pyth, 17 bajtów
Wypróbuj online!
Trywialne rozszerzenie do dość znanego
jN*2]"jN*2]
quine, ale prawdopodobnie można go zagrać w golfaźródło
Betaload , 203 bajty
Dodano nowe linie dla jasności:
Dałem sobie ograniczenie, że musi czytać ze STDIN, a nie ze szczytu stosu, jak to zwykle bywało w przypadku niedociążenia. Użyłem również poprawnego, dziesiętnego wejścia, które stanowi większość kodu.
Wyjaśnienie:
Zawijam program w quine-wrapper:
(a(:^)*
i):^
. Oznacza to, że cały kod wewnątrz opakowania quine będzie miał kod źródłowy programu na dole stosu.Aby przekonwertować cyfry na normalną liczbę kościelną, używam techniki zastępowania każdej cyfry kodem, aby pomnożyć przez 10 i dodać tę cyfrę:
Jest tu wiele powtórzeń, więc spakujmy go do podprogramu, który pobierze cyfrę Kościoła z góry stosu i użyje jej do skonstruowania „ciągu cyfr”:
Umieszczam to w nowym środowisku, aby można było szybko uzyskać do niego dostęp:
Teraz mogę utworzyć kod zastępczy dla
R
.R
wykorzystuje górne elementy stosu, aby utworzyć tabelę odnośników w celu zastąpienia ciągu STDIN kodem Betaload. Działa to tak:Możemy jednak użyć podprogramu, który właśnie utworzyliśmy, aby wygenerować segmenty kodu:
Po
R
uruchomieniu przekształci dane wejściowe w serię podprogramów, które tworzą cyfrę Kościoła. Kiedy ten podprogram jest wykonywany, tworzy ten numer kościelny na następnym elemencie na stosie (0, który został umieszczony wcześniej). Oznacza to, że późniejR^
najwyższą wartością na stosie będzie liczba kościelna. Następnie^
jeszcze raz zastosujemy cyfrę Kościoła do ostatniego elementu na stosie (kodu źródłowego programu), aby uzyskać odpowiedź.Ciekawostka: mam MD na to zgłoszenie od kilku miesięcy. Zatrzymałem je po niezrozumieniu pytania (którego nie mogę już znaleźć). Musiałem go wykopać z Kosza, aby opublikować tutaj.
źródło
05AB1E , 23 bajty
Wypróbuj online!
źródło
Python 2 , 41 bajtów
Wypróbuj online!
Czy wyjście trochę hacky używając
input
zamiastprint
, ponieważprint
ma dziwny bug udziałem drukowania przełamane, gdy nie ma ... . Wyjście z błędem EOF.Wyjaśnienie:
źródło
05AB1E ,
2725 bajtówWypróbuj online!
źródło
Pyth, 13 bajtów
Zestaw testowy
Standardowa quina Pyth plus dwa
*
za powtórzenie.źródło
Perl, 48 bajtów
\47
jest ósemkową ucieczką dla pojedynczego cudzysłowu ('
). Jest interpretowany w podwójnych cudzysłowach ("
), ale nie w pojedynczych cudzysłowach.źródło
JavaScript ES6,
2737 bajtówEdytować
+10 bajtów, jeśli
f=
powinno być również wyświetloneźródło
f=
?toString
funkcję.f.toString()
lubf
jest takie samo, ale nie wyświetla nazwy funkcjif
tego oznacza odniesienie do własnego źródła.CJam ,
2012 bajtów8 bajtów zaoszczędzonych dzięki Martinowi Enderowi
Wypróbuj online!
Eksklanacja
źródło
PHP, 194 bajty
Wypróbuj online!
W ogóle nie golfa, jak zwykle quiny b64.
źródło
Idź ,
257254 bajtówTo mnie boli.
Wypróbuj online!
źródło
Microscript II, 22 bajty:
Microscript II, 20 bajtów (ale technicznie nieprawidłowy, ponieważ uzyskuje dostęp do kodu źródłowego bloku kodu):
źródło
C,
144116 bajtówźródło
Python 3, 69 bajtów
źródło
C # (interaktywny kompilator Visual C #) , 115 bajtów
Wypróbuj online!
źródło
05AB1E , 17 bajtów
Modyfikacja domyślnego quine
0"D34çý"D34çý
przez dodanie×?
.Wypróbuj online.
Wyjaśnienie:
źródło