Wypisuj taką samą długość Lorem ipsum jak Twój kod!
Zasady:
- Kod nie może być identyczny z wyjściem
- Brak bibliotek kompresji
- Najkrótszy program w ciągu dwóch tygodni wygrywa
- Nie korzystanie z sieci, odczyt plików i inne sztuczki, które z jednej można łatwo rozwiązać każdy problem kod golfowe (z
eval
,exec
itp)
Przykład
Your code with length 25.
Wynik
Lorem ipsum dolor sit ame
code-golf
string
compression
self-referential
randomra
źródło
źródło
Odpowiedzi:
GolfScript (122 lub 138 bajtów)
Wydaje się, że reguły są bardzo niejednoznaczne: co dokładnie oznacza „wynik”? Wiele programów zakłada, że „wyjście” programu nie zawiera ostatniego nowego wiersza, który zapewnia, że następny wiersz wejścia powłoki zaczyna się w osobnym wierszu.
ma 122 bajty, a wyjściowe 122 bajty lorum ipsum i końcowy znak nowej linii.
ma 138 bajtów i produkuje 138 bajtów lorum ipsum bez końcowego znaku nowej linii.
źródło
rot13 (1)
dziwię się, że nikt wcześniej tego nie wymyślił :)
i jako bonus, bardzo proste rozwiązanie perla
Perl (252)
źródło
...ExerciTationU/;s,\S\K[A-Z], \l$&,g;print
print'LoremIpsumDolor...NostrudExerciT'=~s,\S\K[A-Z], \l$&,gr
very simple perl solution
już dłużej.Golfscript - 161
Edycja: wyjście Pythona ma inną długość niż jego własna, więc zrobiłem lepszy z golfscript. To także moja pierwsza odpowiedź na golfa.
Nie jestem pewien, jak jest to tutaj zakodowane, więc tutaj jest link do pliku.
źródło
Python 2 - 332
Jeśli kogoś to obchodzi, oto częściowa lista ulepszeń:
1181 -> 630 -> 549 -> 510 -> 456 -> 416 -> 381 -> 332
źródło
Mathematica, 8
Zakładam, że wizualnie identyczne wyjście jest dopuszczalne. Dlatego używam tego znaku zamiast ASCII „i”, co powoduje automatyczne sortowanie dwóch symboli we właściwej kolejności:
źródło
Bash, 156
Ponieważ używanie prawdziwej „biblioteki kompresji” jest zabronione,
base64
zamiast tego będę nadużywać od coreutils. (xxd -r
aby dekodować przesyłanie)Wygenerowałem powyższy kod za pomocą tego programu PHP:
źródło
cat $0
.Mathematica
4746Nie jestem pewien, czy jest to fair play. Mathematica ma „pełny” tekst Lorem ipsum w przykładowych danych. Poniżej po prostu mówi Mathematica, aby wzięła ciąg o określonej długości z wbudowanego przykładu Lorem Ipsum.
Edytuj :
Oryginał :
źródło
PHP, 75 (dynamiczny)
Przykładowe dane wyjściowe:
Nie używa kompresji, ale wygina reguły. Dużo.
Możesz dodać niepotrzebne znaki na końcu przykładu i nadal mieć poprawne wyjście (do 2k + znaków).
PHP, 59 (statyczne)
To samo co powyżej, ale używa stałego rozmiaru i będzie niepoprawne, jeśli zostaną dodane dodatkowe znaki.
źródło
Pakiet Windows,
878720Testowany na Windows XP i Windows 7, ale powinien działać na każdym cmd z rozszerzeniami (IIRC, Windows NT i nowszy).
Należy go uruchomić,
CMD /V:ON /C batchfile
aby włączyć opóźnione rozszerzenie zmiennej, ale wolę, abySETLOCAL EnableDelayedExpansion
w pliku wsadowym nie był przyjazny kodegolf .źródło
J (144)
Miałbym 128, gdybym nie musiał tworzyć odpowiedniego skryptu, aby można było zmierzyć wynik.
Jak to działa: w tekście są tylko 23 unikalne znaki, więc można to przedstawić w 5-bajtowym kodowaniu. Znaki w zakodowanym ciągu są konwertowane na ich liczby ASCII (
a.i.
), następnie każda z liczb jest przekształcana w ich reprezentację base-2 (#:
), następnie bity są grupowane w grupy po pięć (_5>\,
), a następnie każda z tych grup jest konwertowana do jego wartości (#.
), i są one używane jako indeks do tabeli odnośników. ({~
).Tablica odnośników faktycznie potrzebowała trochę majsterkowania, ponieważ literał J-string nie może zawierać
\n
,\r
lub\0
.Hexdump:
źródło
('VLI., ',97}.a.)
W taki sposób, aby nie zepsuła innego literału.