Mamy wyzwanie, aby wygenerować własny wynik , ale wydaje się, że wszystkie odpowiedzi tam po prostu zakodowały wynik i to jest nudne 1 . Więc miejmy nowe wyzwanie. Twój koniecznością wyjścia programu własnej długość w bajtach, po której następuje ciąg " bytes"
, ale w celu uniknięcia Hardcoded rozwiązań gdybyśmy zmniejszyć jego rozmiar poprzez usunięcie jakiegokolwiek jeden bajt, nowy program musi również wyjście to nowa liczba bajtów, nadal następuje " bytes"
. Dane wyjściowe nie muszą uwzględniać wielkości liter. Możesz również zdecydować się na wydrukowanie nowej linii końcowej.
Twoje odpowiedzi zostaną ocenione w bajtach, przy czym mniej bajtów będzie lepszych.
1: Właściwie podoba mi się niektóre odpowiedzi.
code-golf
radiation-hardening
self-referential
Post Rock Garf Hunter
źródło
źródło
:(
1 bytes
technicznie niepoprawną gramatykę, ale przy założeniu, że języki nie mają wbudowanej funkcji wysyłania ciągu„ bajtów ”w <= 2 bajtach, program będzie dłuższy niż 3 bajty, więc nie ma znaczenie ”- to i tak nie ma znaczenia.Odpowiedzi:
Backhand ,
40 3629 bajtówWypróbuj online! Weryfikacja!
W razie wątpliwości podwój wszystko. Wykorzystuje to zdolność Backhanda do poruszania się więcej niż o jeden krok na raz, aby wprowadzić redundancję. Wszystkie niedrukowalne mają wartość bajtu 28.
Wyjaśnienie:
Program nienapromieniowany:
Program naświetlany:
Jeśli jakikolwiek znak zostanie usunięty, każdy następny znak zostanie przesunięty w dół.
Jednak zamiast przeskakiwać do
]
, zamiast tego odbija się od końca programu i ląduje na nimO
.źródło
Runiczne Zaklęcia , 47 bajtów
Wypróbuj online!
Który jest mniej więcej portem mojej odpowiedzi Licznika Geigera , ale z innym wyjściem (który sam jest portem odpowiedzi Kleina).
>>yyLL
jest wymagane, aby Runic wygenerowała (co najmniej) jeden adres IP, scaliła dwa IPS i odbiła się z powrotem w lewo, tak aby wszystkie zmiany skutkowały pojedynczym ruchomym adresem IP w lewo. Można zastąpić,yy<<
ale nie zapisuje żadnych bajtów.Odbłyśniki po prawej stronie wymuszają IP na lewy dolny ciąg, więc usunięcie prawego górnego z nich pozwala na IP na prawy górny ciąg. Usunięcie bajtu gdziekolwiek indziej wzdłuż górnej linii powoduje dostosowanie górnego reflektora do położenia powyżej L (pozwalając programowi w prawym dolnym rogu). Usunięcie bajtu wzdłuż dołu dostosowuje ten reflektor (lub usuwa go), tak że ostatni znak zostaje domyślnie wypełniony spacją, co pozwala IP odbić się od obu stron prawego górnego reflektora i do prawego górnego ciągu.
Nadmiar przestrzeni jest jednak rozczarowujący. Ale wszystkie próby ich zmniejszenia zaowocowały większymi programami, programami o tej samej wielkości lub programami, które nie są w 100% odporne na promieniowanie. Zarówno odpowiedzi Kleina, jak i> <> używają funkcji niedostępnych w Runicznej.
źródło
> <> ,
4339 bajtówWypróbuj online! Weryfikacja!
W programie nienapromieniowanym dodajemy
0
do'
(39), aw programie napromieniowanym pomijamy 0 i dodajemy-1
do niego. Jeśli coś zostanie usunięte z górnego rzędu, zamiast tego przechodzimy do dolnego rzędu i po prostu wyprowadzamy dane38 bytes
.źródło
Sześciokąt , 71 bajtów
Wypróbuj online! Weryfikacja!
Spędziłem dużo czasu próbując przekształcić to w sześciokąt wielkości 5, ale zamiast tego musiałem zadowolić się mniejszym rozmiarem 6
:(
.Rozszerzony:
Początkowo zrobiłem to z
)
jednym rzędem niższym, ale okazuje się, że dokładnie tam jest podział na sześciokąty wielkości 5 i 6. Oznacza to, że po usunięciu bajtu rozmiar przesuwa się w dół i niszczy ścieżki. Jestem zdecydowanie pewien, że rozmiar 5 jest możliwy.źródło
)
rzędu niżej, a następnie po prostu położyć po sobie zakaz, aby był to sześciokąt wielkości 6?Klein 000, 41 bajtów
Wypróbuj online! Weryfikator JoKinga
Myślę, że ta odpowiedź jest podobna do odpowiedzi JoKing> <> , ale nie czytam> <>, więc nie jestem pewien.
Istnieją tutaj 4 różne rodzaje usuwania bajtów
Bajt jest usuwany z pierwszej linii wcześniej
/
. W tym przypadku ukośnik jest skutecznie przesuwany w lewo o jedną spację, co powoduje odchylenie go do dolnej linii i uniemożliwia wykonanie zmodyfikowanej części kodu. To powoduje, że uruchamiamy kod("40 bytes"@
, który wyprowadza40 bytes
.Pierwszy
/
jest usuwany z pierwszego wiersza. W tym przypadku uruchamiamy kod"0"+"4"$" bytes"@
, który jest skomplikowanym sposobem lub drukowaniem40 bytes
.Nowa linia została usunięta. To powoduje, że zaczynamy od końca drugiego wiersza, a wynikowy kod (bez usuniętej noops) to
1("40 bytes"@
, który po prostu drukuje40 bytes
.Bajt z ostatniego wiersza jest usuwany. Powoduje
1
to przesunięcie końca pierwszej linii w lewo i zapobiega dodawaniu jej do stosu, gdy ostrze jest odchylane o/
. Kod"0"+
z tego powodu wypycha0
zamiast1
, reszta kodu zamienia0
w40 bytes
.Klein 001, 41 bajtów
Wypróbuj online! Weryfikator JoKinga
Oto odpowiedź przy użyciu innej topologii. Jest tego samego rozmiaru, ale myślę, że jest miejsce na ulepszenia.
źródło