Biorąc pod uwagę nieujemną liczbę całkowitą n
, twoje rozwiązanie musi wypisać program w wybranym przez ciebie języku, którego wyjście ma n
tyle razy bajtów, ile wyprowadzony program.
Zasady
- Musisz określić język i kodowanie programów generowanych przez rozwiązanie i nie możesz wybierać różnych języków lub kodowań dla różnych danych wejściowych dla swojego rozwiązania. Język twojego programu wyjściowego może, ale nie musi być taki sam, jak język twojego rozwiązania.
- Twoje zgłoszenie musi obsługiwać liczby całkowite z zakresu Twojego języka, ale nie nadużywaj tej zasady.
To jest golf golfowy, więc wygrywa najkrótsze przesłanie w bajtach.
Przykład
Załóżmy, że n
4. Moje rozwiązanie wypisuje następnie f_8
program, który w moim (urojonym) języku wypisuje j3 1s+/2]!mz
. Wyjście programu ma długość 3, a jego wyjście ma długość 3 * 4 = 12, więc rozwiązanie jest poprawne dla wejścia 4.
Załóżmy, że zamiast tego n
jest to 1, a mój program wyprowadza ffffpfpffp
(10 bajtów). Program ffffpfpffp
w moim wybranym języku musiałby wygenerować wynik 10 * 1 = 10 bajtów.
n
za sznurek?Odpowiedzi:
JavaScript (ES6), 38 bajtów
Próbny
Pokaż fragment kodu
źródło
Galaretka , 10 bajtów
Wypróbuj online!
Na wejściu
12
wyprowadza12DL+8×x@⁶
, co daje 120 spacji. Wypróbuj online!źródło
pieprzenie mózgu , 348 bajtów
Wypróbuj online! Lub zobacz wersję Ungolfed (tj. Z czym musiałem pracować)
Zrzeczenie się
Spędziłem więcej czasu na robieniu tego, niż myślałem, że to po ludzku możliwe. Chciałbym podziękować mojej dziewczynie za to, że pozwoliłem jej rzucić ją do pracy; jak również mój wybawca .
Jak to w ogóle działa?
Bladego pojęcia.
Jak to działa
Wszystkie dane wyjściowe mają końcowy fragment kodu, które są takie same:
Podzielmy to na trzy części zwane
a,b,c
Dane wejściowe
i
są po prostu przekazywane jednostronnie:(np. jeśli wejście było 10, to
i = '++++++++++'
)Powielacz - dzieli dane wejściowe na dwie identyczne liczby
m, n
, równoważne z danymi wejściowymiDostrajacz - dostosowuje się
n
tak, aby był równy długości programuDrukarka - drukuje
m*n
znaki ASCIIZauważ, że dane wejściowe w tym przykładzie to a
newline
, które jako wartość ASCII wynosząca 10, dlatego dane wejściowe to10
. Jeśli chcesz przetestować inne małe liczby, zamień na,
tyle+
, ile chcesz.źródło
Cheddar ,
109 bajtówNiezręczny poliglot protonowy> _ <
źródło
Haskell , 55 bajtów
Wypróbuj online! Przykładowe użycie:
f 1
zwraca następujący 54 bajtowy program:Wypróbuj online! co daje następujący wynik 54 bajtów:
źródło
Python 3 -> HQ9 +, 11 bajtów
To musiało być zrobione
Wypróbuj online!
źródło
Q
prostu drukuje własny kod źródłowy. Możesz to sprawdzić tutaj: hq9plus.alwaysdata.net . To nigdy nie miało być poważnym wejściem1
, to wyprowadzicieQ
, co z kolei wyprowadziQ
.Q
ma długość1
, ale twój kod ma długość11
.Java 8,
175174 bajtówPrzykłady:
n=1
wyjścia :(długość = 89), która generuje 89 zer :
n=10
wyjścia :(długość = 90), która generuje 900 zer :
n=100
wyjścia :(długość = 91), która generuje 9100 zer :
Wyjaśnienie:
źródło
RProgN 2 ,
75 bajtówZ końcową spacją
Wyjaśniono
Wypróbuj online!
źródło
CJam,
813 bajtówWypróbuj online
Wygenerowany program generuje spacje, więc trudno powiedzieć.
źródło
Ly , 29 bajtów
Wypróbuj online!
(obecnie nie działa z powodu błędu przetwarzania wstępnego)Wszystko dobrze!źródło
Python → TECO, 20 bajtów
Odpowiedź znajduje się w Pythonie, podczas gdy wygenerowany kod jest w TECO. Python jest funkcją zwracającą
VV12345\VV
powtarzane n razy. Zobacz tutaj wyjaśnienie TECO.źródło
PHP, 47 + 1 bajtów
drukuje jeden znak podkreślenia, a następnie spacje.
Uruchom jako potok z
-F
; uruchom wyprowadzony program za pomocą-f
lub-F
.To nie powiedzie się przy wprowadzaniu więcej niż 64 cyfr,
czyli o wiele więcej niż
PHP_INT_MAX
(obecnie).Jednak nie powiedzie się dla danych wejściowych większych niż
PHP_INT_MAX
-18 ... czy nadal się kwalifikuje?źródło
PHP_INT_MAX
-18. Czy to dyskwalifikuje?PHP → Python 2, 40 + 1 bajtów
wypisuje program Python, który drukuje powtarzane
A
s. Uruchom jako potok z-F
.źródło
Partia → Węgiel drzewny, 22 bajty
Nie jestem pewien, jakiego kodowania powinienem użyć, ponieważ są to bajty. Oto bajty interpretowane jako Windows-1252:
Te same bajty, co PC-850:
Te same bajty na stronie kodowej Charcoal:
Wynikowy program Charcoal ma
Plus(Length(Cast(n)), 9)
bajty długości:źródło
Recursiva ,
1615 bajtówWypróbuj online!
To do wprowadzania
n=2
wydruków:która daje 30
*
. Wypróbuj online!źródło
JavaScript (ES8),
434139 bajtówSprawdź to
Dane wyjściowe wygenerowanej funkcji jest ciągiem spacji, które są zastąpione przez
*
s w tym fragmencie.źródło
R , 46 bajtów
Wypróbuj online!
Anonimowa funkcja zwracająca ciąg
Które wydruki
a
(a
po których następuje spacja) 23n
razy. Potrzebowałem,''
ponieważ inaczejcat
nie wydrukowałbym ostatniego znaku spacji.źródło
C, 94 bajty
będą to 94 bajty, w tym ostatni \ n, który na C oznacza, że powinien być napisany. zwróć jako znaki „r” jako (długość programu) * (argument programu), jeśli argument programu nie istnieje lub jest <= 0 lub jest> 0xFFFFF nic nie drukuj
źródło
MATLAB (63 bajty)
Na przykład:
i:
źródło