To jest wątek towarzyszący głównemu wyzwaniu Rozszyfruj kod źródłowy . Jeśli uważasz, że udało ci się rozszyfrować jedną z odpowiedzi policjanta, powinieneś opublikować swoje rozwiązanie jako odpowiedź na ten wątek.
Przypominamy, że masz jedną próbę złamania każdego zgłoszenia. Twoja próba włamania będzie niezakodowaną wersją kodu źródłowego. Jeśli twoje zgadywanie pasuje do opisu (te same znaki, dane wyjściowe i oczywiście język), a ty jesteś pierwszym trafnym zgadnięciem, to wygrywasz punkt. Ważne jest, aby pamiętać, że twój program nie musi dokładnie pasować do oryginału, wystarczy użyć tych samych znaków i mieć tę samą funkcjonalność. Oznacza to, że może istnieć więcej niż jedna poprawna odpowiedź.
Złodziej z największą liczbą punktów (udane pęknięcia) wygrywa.
Tabela liderów
Zbyt wiele rozwiązań
- Martin Büttner: (Python 3, 16, matsjoyce) , (CJam, 15, Ypnypn) , (Mathematica, 29, Fox Wilson) , (JavaScript, 15, Caridorc) , (CJam, 52, user23013) , (Pyth, 11, isaacg) , (PHP, 22, kenorb) , (PHP, 13, kenorb) , (Ruby, 17, Doorknob) , (PHP, 49, bwoebi) , (Mathematica, 35, Tally) , (GolfScript, 13, Peter Taylor ) , (JavaScript, 25, Cris) , (JavaScript, 29, Cris) , (JavaScript, 26, Cris) , (Bash, 33, Debasis) , (JavaScript, 10, Cris), (Lua, 28, ChipperNickel) , (Mathematica, 18, Arcinde) , (JavaScript, 30, Qwertiy) , (CJam, 13, user23013) , (JavaScript, 41, Ismael Miguel) , (Ruby, 38, Doorknob) , (Marbelous, 36, es1024) , (PHP, 33, Ismael Miguel) , (JavaScript, 29, Joe) , (JavaScript, 28, Shawn Holzworth) , (Ruby, 35, histocrat) , (CJam, 19, Ypnypn) , (Ruby, 17, Stephen Touset) , (JavaScript, 36, MegaTom) , (JavaScript, 24, fogcityben) , (Python 3, 21, Reticality) ,(JavaScript, 10, Jamie Barker) , (JavaScript, 15, Jamie Barker)
20 rozwiązań
- feersum: (Python 3, 44, Sp3000) , (C, 70, es1024) , (MATLAB, 41, COTO) , (Brainfuck, 118, Sp3000) , (C, 30, Ethiraric) , (C, 28, Mig) , (Python 3, 46, hosch250) , (Java, 70, Rodolvertice) , (C, 29, imallett) , (Java, 226, nhahtdh) , (Little Man Computer, 63, The Wolf) , (Python 2, 89 , Beta Decay) , (Python 2, 41, muddyfish) , (C, 63, es1024) , (C ++, 192, Arcinde) , (Java, 108, durron597) , (C #, 604, eshansingh1) ,(C, 44, Art) , (Java, 134, Olavi Mustanoja) , (Bash, 47, Vi.)
15 rozwiązań
- user23013: (CJam, 18, Ypnypn) , (JavaScript, 26, hsl) , (CJam, 12, COTO) , (PHP, 23, bwoebi) , (PHP, 54, Steve Robbins) , (CJam, 32, Dennis) , (CJam, 19, Martin Büttner) , (Bash, 23, The Wolf) , (Ruby, 33, Doorknob) , (CJam, 34, Dennis) , (JavaScript, 82, Ismael Miguel) , (PHP, 80, Ismael Miguel) , (QBasic, 43, DLosc) , (QBasic, 42, DLosc) , (ECMAScript, 90, Cris)
10 rozwiązań
- squeamish ossifrage: (Python, 44, Caridorc) , (PHP, 52, PleaseStand) , (Befunge-93, 17, user23013) , (BBC BASIC, 187, Beta Decay) , (C, 43, Allbeert) , (Ruby, 58, Rodolvertice) , (JavaScript, 32, hsl) , (PHP, 33, kenorb) , (Python 2, 16, imallett) , (PHP, 53, PleaseStand)
- Sp3000: (Python, 154, Fox Wilson) , (Python, 48, kgull) , (Python, 68, rogi) , (Python 2, 38, FryAmTheEggman) , (Python 2, 57, FryAmTheEggman) , (Python, 74, xnor) , (JavaScript, 66, Cris) , (JavaScript, 70, Cris) , (Python 2, 37, muddyfish) , (Python, 55, FireFly)
7 rozwiązań
- grc: (Python 2, 61, FryAmTheEggman) , (Perl 5, 47, chilemagic) , (Python, 69, Sp3000) , (Perl, 39, GentlePurpleRain) , (Perl, 36, squeamish ossifrage) , (Python 3, 110 , Sp3000) , (C, 53, FireFly)
5 rozwiązań
- hsl: (CoffeeScript, 25, Martin Büttner) , (Golfscript, 20, Josiah Winslow) , (Lua, 18, user3155415) , (Python, 54, kgull) , (Arytmetyka, 31, Cris)
- PleaseStand: (PHP, 14, Tryth) , (C ++, 56, hosch250) , (PHP, 21, kenorb) , (QBasic, 37, DLosc) , (JavaScript, 46, FireFly)
4 rozwiązania
- bwoebi: (PHP, 52, kenorb) , (PHP, 30, Tryth) , (PHP, 27, kenorb) , (PHP, 44, kenorb)
- FireFly: (JavaScript, 94, Shawn Holzworth) , (Python, 34, Sp3000) , (Brainfuck, 39, Mig) , (JavaScript, 69, Shawn Holzworth)
3 rozwiązania
- Optymalizator: (JavaScript, 61, jsh) , (JavaScript, 47, palerdot) , (JavaScript, 42, Shawn Holzworth)
- es1024: (PHP, 46, Ismael Miguel) , (powłoka Python, 15, xnor) , (powłoka Python, 21, xnor)
- DLosc: (Python, 41, Sp3000) , (Ruby, 37, Rodolvertice) , (CJam, 14, User23013)
2 rozwiązania
- xnor: (Python 3, 37, matsjoyce) , (Python 2, 29, Dennis)
- Daniel Wagner: (Haskell, rozmiar 34, Petr Pudlák) , (Haskell, 42, dumny haskeller)
- nneonneo: (Python, 41, Sp3000) , (C, 43, FryAmTheEggman)
- Sztuka: (C, 51, es1024) , (C, 48, es1024)
- n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳: (Java 6+, 101, Rodolvertice) , (Java, 97, Olavi Mustanoja)
1 rozwiązanie
- Ypnypn: (Python 2, 50, Geobits)
- matsjoyce: (Python 3, 12, xnor)
- user1354557: (Python, 56, Fox Wilson)
- Dennis: (CJam, 20, Martin Büttner)
- isaacg: (Pyth, 71, FryAmTheEggman)
- ConMan: (SAS, 17, user3490)
- Arcinde: (JavaScript, 285, rozpad beta)
- Shawn Hotazworth: (JavaScript, 82, TrungDQ)
- nooodl: (Ruby, 49, Klamka)
- Bhante Nandiya: (Python 3, 37, Sp3000)
- Geobity: (APL, 17, user23013)
- histocrat: (Ruby, 23, MegaTom)
- ProgramFOX: (Python, 13, Reticality)
źródło
Odpowiedzi:
CJam, rozmiar 20, autor: Martin Büttner
Wypróbuj online.
Jak to działa
Złamanie kodu
Pożądanym wyjściem
2.956177636986737
jest Double lub Double, po którym następuje Long.Używając tylko znaków w
"Stop, Hammer time!"
, są cztery wbudowane operatory, które zwracają liczby nie będące liczbami całkowitymi:mS
, który jestasin
ma
, który jestatan2
me
, który jestexp
mt
, który jesttan
Wszystkie zawierają
m
, więc możemy użyć maksymalnie trzech z nich. Jest tylko jedenS
i jedena
.Wszyscy operatorzy potrzebują danych wejściowych i
ma
jako jedyny zużywają dwa dane wejściowe. Mamy tylko trzy sposoby na popchnięcie Longsa:"...",
, która przesuwa długość łańcucha (ściśle mniej niż 18).H
, która popycha 17....!
, która wypycha logiczne NIE...
.Nie mamy możliwości popchnięcia czegoś falsy jako
...
, więc ostatnia opcja zawsze spowoduje pchnięcie 0.Dane wyjściowe nie zaczynają się ani nie kończą na
17
lub0
. Ponieważ 15 cyfr dziesiętnych jest zwykłą liczbą cyfr dla Double, wydawało się prawdopodobne, że wynik był prostym Double.Zakładając to, kod musi należeć do jednej z następujących kategorii:
<Long> <mS|me|mt>{1,3}
<Long> <mS|me|mt>{x} <Long> <mS|me|mt>{y} ma <mS|me|mt>{z}
.i
) lub rounding (mo
) na Double.W drugim przypadku
x + y + z
jest to 1 lub 2, a jeden z Longs ma wartość 0 lub 17.Reszta to w zasadzie brutalna siła. Po kilku próbach
wrócił
9
, co oznacza, żeprodukuje pożądaną moc wyjściową.
Pozostało tylko wyeliminować wszystkie ciągi oprócz 9 znaków. Spacje to noops i
i
jest to noop na Longs, więc"petStorm!"
jest to jeden z możliwych wyborów.źródło
mr
przed wzięciem długości. Nie dlatego, że w pewnym momencie nie wymyślisz tego. ;)Python 3, rozmiar 12, autor: xnor
Nic nie robi (wyrażenie tworzy pustą krotkę, która nie jest drukowana). Działa to z powodu oceny zwarcia.
źródło
()
.print
.bciprt
nigdy nie jest wykonywany, więc nigdy nie wywołuje błędu NameError.Python, rozmiar 74, autor: xnor
To była zabawa. Dzięki FryAmTheEggman, hosch250 i isaacg za sugestie / pomoc.
źródło
list(\nprint(range is range)for aacdeeeeehmppprrrrssvwy in\noct(int is int))
.Python 2, rozmiar 50, autorstwa Geobits
Wyjścia 42.
źródło
print 2**2**2**2/2**2**2/2**2**2/2-2**2**2*2**2-22
rację :) Dla porównania, oryginał był , ale nic dziwnego, że więcej niż jedna opcja jest poprawna.GolfScript, rozmiar 13, autor: Peter Taylor
Sprawdź to tutaj.
Kolejny, który złamałem tylko z dużą pomocą Sp3000. Dzięki!
Oto jak się tam dostaliśmy. Sp3000 zauważył w wynikach kilka serii kolejnych liczb:
Na tej podstawie przyjęliśmy założenie, że jest to rosnąca sekwencja, która pozwoliła tylko na jeden możliwy podział pozostałych liczb:
To 23 liczby, co było silnym wskaźnikiem powtórzenia bloku 22 razy, a także zakończenia bloku za pomocą
.
(duplikatu górnego elementu stosu), tak że poprzedni wynik został pozostawiony na stosie i tak, aby ostatnia iteracja pojawiła się na stos dwa razy. To22,{____.}/
.Teraz, patrząc na luki, okazują się, że są to 4 moce (co jest miłe, ponieważ mamy
4
i?
). Dokładniej, są czwartą potęgą indeksu aktualnej liczby. Następnie przyjrzeliśmy się, które indeksy stworzyły lukę:Są binarnie
Wszystkie mają trzeci zestaw bitów, co oznacza, że indeks jest prawdopodobnie tylko bitowy i opatrzony
4
(co jest znowu fajne, ponieważ możemy zrobić kolejny za4
pomocą.
i mieć a&
). Działa to szczególnie dobrze, ponieważ operacja ta powoduje albo,0
albo4
, a jeśli użyjemy tego jako wykładnika, otrzymamy jedną1
lub czwartą moc, która jest dokładnie tym, czego potrzebujemy. Złóżmy to razem:Oto, co robi blok:
Teraz pozostały dwa problemy: mieliśmy błąd,
,
którego jeszcze nie wykorzystaliśmy, a pierwsza iteracja jest szczególnym przypadkiem, ponieważ nie ma żadnej wartości z poprzedniej iteracji, do której moglibyśmy dodać rzeczy podczas spotkania+
. Odkryliśmy, że dzięki niepowiązanemu komentarzowi użytkownika23013, który od niechcenia wspomniał, że GolfScript zaczyna się od pustego łańcucha na stosie (jeśli nie ma nic na STDIN). Mogliśmy więc użyć tego drugiego,
prawa na początku, aby zamienić ten ciąg w a0
, i właśnie tego potrzebowaliśmy jako początku iteracji.źródło
Python 3, rozmiar 16, autor: matsjoyce
źródło
Ruby, rozmiar 17, autor Doorknob
To była świetna zabawa. Dzięki Sp3000 za pomoc w tym! Dowiedziałem się, że
%r?...?
literały mogą mieć dowolne ograniczniki. :)źródło
print
, tylko podzielić go nap
do druku,%r
dla regexes ii
przez przypadek-niewrażliwe regex dopasowywania.PHP, rozmiar 49, autor: bwoebi
To było absolutnie mentalne .
Musiał
dość szybko, w tym momencie potrzebowałem czegoś, co daje
-6
po przecinku, po$++$++$++$+=$~main$2
wyjściu.Głównym haczykiem jest to
$a
,$m
i$i
wszystkie sąNULL
, więc użycie ich pośrednio w zmiennych zmiennych oznacza, że wszystkie wskazują na tę samą zmienną. Wydaje się jednak, że PHP robi dziwne rzeczy w zakresie rozwiązywania zmiennych zmiennych. Za pomocą normalnych zmiennych możesz robić takie rzeczyktóry drukuje
4
(2
jest przypisany,$a
a następnie dodany do siebie). Ale jeśli zrobię to samo ze zmiennymi zmiennymi:Rozumiem
2
, ponieważ teraz pierwszy$$a
jest oceniany przed zadaniem.W końcu udało mi się wymusić pewien porządek, wprowadzając pewne przyrosty RHS,
+=
które musiały zostać ocenione przed tym przypisaniem dodatkowym. W ten sposób doszedłem do tego,5
co mogłem uzupełnić. Nadal ... dzieje się kilka tajemniczych rzeczy i nie mam pojęcia, dlaczego połowa rzeczy, które próbowałem, działała, a nie działała.źródło
print@substr(new exception,~$$mn+=2+$$a+++$$i++);
main
były w łańcuchu, bardzo was wprowadzają w błąd. Poza tym, jak{main}
sądzę , dość nietypowa metoda wyodrębniania ;-)main
naprawdę nie wprowadzać w błąd mnie po plamieniaexception
,new
isubstr
. Myślałem, że będą to tylko nazwy zmiennych. Trochę mi zajęło wymyślenie zmiennych zmiennych i przez większość czasu zastanawiałem się nad kolejnością operacji, które faktycznie dałyby wynik,5
który mógłbym uzupełnić bez użycia innego zestawu nawiasów.exception
było oczywiste, co pozostawiało zbłąkane postaciesubstr
inew
leżały. To była dosłownie pierwsza rzecz, jaką zobaczyłem, kiedy zaczynałem nad tym pracować.Ruby, rozmiar 38, autor Doorknob
Jestem prawie pewien, że to nigdzie w pobliżu oryginalnego źródła. Jest deterministyczny pomimo użycia
rand
.Oto jak to działa.
$><<
jest po prostu wyjściem.$pece60
i$win
są niezdefiniowanymi zmiennymi globalnymi, które są po prostunil
(i pozwoliły mi pozbyć się obcych znaków).!$pece60
tworzy atrue
ito_s
daje ciąg"true"
.Przez wieki próbowałem uzyskać dostęp do
2
lub tam, ale potem zdałem sobie sprawę, że mogę po prostu wziąć i zadzwonić na (era), aby zrobić .-2
u
t
.succ
u
rand
znil
parametrem zwraca losową liczbę zmiennoprzecinkową w przedziale [0,1). Używając liczb zmiennoprzecinkowych do indeksowania ciągów, są one obcinane do liczb całkowitych, więc zawsze zwróci pierwszy znak.W końcu miałem zapasową parę,
[]
więc po prostu wszystko w nią zapakowałem, bo na szczęście wszystko jest wyrażeniem w Ruby.Dzięki Sp3000 za rozpowszechnianie pomysłów na czacie.
źródło
C, 51 autorstwa es1024
Po 20 latach programowania C dowiedziałem się dzisiaj o szesnastkowych stałych zmiennoprzecinkowych.
źródło
Ruby, 45 (histocrat)
Łał! To mój pierwszy problem z kodem golfowym i nie mam wystarczającej liczby przedstawicieli, aby skomentować oryginalny post. Natychmiast rozpoznałem zastosowaną sztuczkę, ponieważ często znajdowałem jej zastosowanie w kodzie produkcyjnym. Zrozumienie większości konstrukcji zajęło około 5 minut, a znalezienie pełnej odpowiedzi zajęło kilka godzin.
Wyjaśnienie:
%q[]
jest alternatywną metodą tworzenia ciągów. Można również użyć nawiasów i nawiasów klamrowych.String#to_i
w Ruby przyjmuje liczby w dowolnej bazie od 2 do 36. Zignoruje pierwszy znak w ciągu, który nie jest częścią liczby, więc wszelkie dodatkowe znaki można „wyrzucić” po spacji.A oto kod, którego użyłem do złamania go:
Sposób na osadzenie problemu NP w zagadce. Byłem bardzo ostry jak kujon. Dobra robota!
źródło
p
do przed wyrażeniem. Przypuszczalnie pozostałe postacie można wykorzystać do utworzenia stałych, tak jak to zrobiliście.p %q[zyfnhvjkwudebgmaclrsx].to_i(36)/51074892
wiem, że jednak złamałem swoją próbę złamania :)Powłoka Python [dowolna], rozmiar 44, autorstwa Caridorc
Jestem pewien, że miało to być coś więcej, ale ponieważ
__name__
jest to równoznaczne__main__
, czwarty znak „a” jest wybierany, a reszta linii nigdy nie jest oceniana.źródło
[__name__ for ___name__ in range(1,4)][2][3]
Perl, rozmiar 36, przez skrzypiące kostkowanie
Kolejny trudny.
źródło
CJam, rozmiar 13, autor: user23013
Sprawdź to tutaj.
Rozwiązane ręcznie, tak:
Po pierwsze, pewne tło dla osób niebędących CJammerami:
CEGIK
są wszystkie zmienne, które są wstępnie inicjalizowana12
,14
,16
,18
,20
, odpowiednio.s
konwertuje element najwyższego stosu na ciąg.f
to całkiem magia. Dla celów tej odpowiedzi wersja uproszczona polega na tym, że dla tablicya
, innej wartościb
i operatorag
sekwencja jestabfg
odwzorowywanag(_,b)
naa
(gdzie każdy elementa
wchodzi do_
szczeliny)./
to dzielenie i dzielenie tablic (między innymi).*
to mnożenie i powtarzanie tablic (między innymi).%
to modulo i jakaś dziwna operacja, która w postaciad%
tablica
i liczb całkowitychd
przyjmuje każdyd
th elementa
(jak krojenie Pythona z krokami szerokościd
).#
jest potęgowanie (między innymi).,
zamienia liczby na zakresy (od0
don-1
) i zwraca długość tablicy.Okej, to na uboczu ...
Było dość oczywiste, że musimy
,
zamienić liczbę na zakres, ponieważ jedynym innym sposobem na uzyskanie tablicy byłoby zbudowanie większej liczby i przekształcenie jej w tablicę znaków za pomocąs
- ale wtedy nie moglibyśmy zrobić żadnej dalej na tym arytmetyka. I potrzebujemy tablicy, aby zrobić coś zf
s.Najpierw założyłem, że
f
używamy s#
i%
, ale oznaczałoby to, że potrzebowalibyśmy liczby około 90, aby uzyskać odpowiednią liczbę cyfr na końcu. Nie wyjaśniło to również, co z tym zrobićs
, a ponieważ odpowiedź wyglądała naprawdę golfowo, wątpiłem, by user23013 po prostu dodałs
jako skuteczny zakaz, by zrzucić ludzi.Pomyślałem, że może nawet nie utrzymuje liczb na małym poziomie
%
, ale zamiast tego buduje tablicę ogromnych liczb, łączy ich reprezentację łańcuchowąs
, ale potem wybiera z niej tylko jakiś dziwny kawałek%
. Więc bawiłem się trochę z następującymi ramami:(Nie możesz zrobić
_f/
pierwszego, ponieważ to dałoby zero dla co najmniej pierwszych 12 elementów.)Gdzie
_
są niektóre permutacje zmiennych. Nie próbowałem wszystkich, zanim się nudziłem, a głównym problemem było to, że wynikowa sekwencja cyfr jak zawsze była o wiele za długa.W pewnym momencie przyszło mi do głowy, że nie potrzebowalibyśmy tak dużego zakresu (iloczynu dwóch liczb), gdybyśmy zamiast tego użyli tego
*
do powtórzenia otrzymanego ciągu. Z powodu niedopasowania parametrów*
i%
nie spowoduje to powtórzenia w wyniku:To dało wyniki o długości bardzo zbliżonej do tego, czego szukałem. Wypróbowałbym wszystkie 240, ale dość szybko (trzecia lub czwarta próba) natknąłem się
co daje
Doszedłem do wniosku, że dopasowanie pierwszych sześciu cyfr nie będzie przypadkiem. Pytanie brzmiało więc, jak zmienić jego kolejność bez zakłócania rzeczywistych obliczeń:
K
ponieważ wybrałoby to zupełnie inne cyfry.C
lubI
ponieważ to zmieniłoby liczby wynikające z dwóch operacji mapy.G
, zmieniłoby to tylko liczbę powtórzeń, co nie zrobiłoby nic poza zmianą długości wyniku. (Co jest dobre.)E
, zmieniłoby to zakres tablicy, ale zakres nadal zaczynałby się od[0 1 2 3 ...]
, więc nie wpłynęłoby to na obliczenia. Wpłynęłoby to na długość zwracanego ciągu podstawowegos
, co oznaczałoby również,K%
że wybrałby różne cyfry po dodatkowych powtórzeniach.Więc po prostu starał swapping
E
iG
i voila:Podsumowując, oto, co robi kod:
źródło
APL, rozmiar 17, autor23013
Spędziłem zdecydowanie zbyt długo, próbując to rozerwać. Pewnie poszedłby szybciej, gdybym wiedział, że APL wchodzi.
Wypróbuj tutaj
źródło
Pyth, rozmiar 11, autor: isaacg
To pewne złośliwe nadużycie w tym miejscu. To kompiluje się do:
Istotnym błędem jest to, że
\\
kompiluje się"\"
zamiast"\\"
, co pozwala kompilować Pyth w ciąg.źródło
Pprint
byćprint
, a przynajmniejpprint
?Python, rozmiar 69, autorstwa Sp3000
To było trudne...
źródło
print(sum(map(ord,str((dict(list(((str(),str(dict())),))),list())))))
, ale oczywiście działałoby wiele różnych kombinacji słów kluczowych.Python 3, 37 bajtów, autor: Sp3000
Żenująco zdecydowanie najtrudniejsza była próba przekształcenia łańcucha na bajty. Musiałem na nim spać, a w nocy zdałem sobie sprawę, że to jest dosłownie bajt!
źródło
PHP, 53, PleaseStand
Nareszcie go złamałem:
Rozwiązanie pojawiło się dość szybko, gdy zauważyłem, że sekwencja składa się z naprzemiennych liczb dziesiętnych i ósemkowych:
Ponadto odstępy między każdym zestawem liczb rosły w tempie równym wartości zwracanej przez
printf()
(tj. Liczbie zapisanych znaków).źródło
Python 2, rozmiar 132, autorstwa Vi.
Dzięki za wszystkie ukośniki odwrotne i cudzysłowy :)
Edycja: zaktualizowana wersja z 96 znakami:
Zostało to całkowicie zaczerpnięte z rozwiązania Alexa pod adresem https://codegolf.stackexchange.com/a/41451/32353
źródło
fgiillmmooprrsstt
lub,,,\016:::S[]____tuuvyy
.exec
? Mój kod mógłby być krótszy ... emulowałem go za pomocącompile
+,eval
ponieważ zapomniałem oexec
...CJam, rozmiar 15, autor: Ypnypn
Z podanych postaci zgadłem, że musiała to być jedna z trzech następujących form:
który tworzy dwucyfrowy zakres, a następnie mapuje operację dodawania i modulo (w dowolnej kolejności) na zakresie przed zsumowaniem. Zacząłem więc od pierwszego i systematycznie próbowałem permutacji
6789
w lukach.źródło
PHP, rozmiar 52, autorstwa PleaseStand
W końcu okazało się to dość łatwe. Wyjście wygląda bardzo przypadkowe, a postacie
m
,t
,_
,r
,a
,n
id
wszystko dwa razy pojawił się ...źródło
Python 2, rozmiar 61, autor: FryAmTheEggman
Byłbym bardzo zaskoczony, gdyby to pasowało do oryginału.
źródło
print''.__doc__[::2][::3].split()[1].split('.')[0][:-~-~True]
dir()
znalazłeś „dostać”. I tak, bez cytatów byłoby to bardzo trudne.Python 3, Sp3000, rozmiar 44
Python 3 pomógł mi tutaj, ponieważ mogłem spowodować błąd (przesunięcie w lewo
None
o coś) po wydrukowaniu odpowiedzi.źródło
print(~(~(()<())<<((()<((),))<<(()<((),)))))
pierwotnie.PHP, rozmiar 52, autor: kenorb
(Boże, ile czasu zajęło mi ustalenie, co zrobić z pozostałym
_r
sufiksem. Dopóki nie zauważyłem, że tak nie byłoprint
, aleprint_r
...)źródło
_:print_r(chr(3*pow(2,5)+@++$i));if(@$i<4<<1)goto _;
.echo
nie jest to możliwe;print
pozostał; b) potrzebujesz trochę pętli, ale dlafor
pętli nie było wystarczającej liczby średników, no cóż, jest dwukropek ... więc prawdopodobnie jest tam etykieta w połączeniu z goto; c) wtedy konieczne jest przerwanie pętli goto. Posiadanie terazX:print($Y);if($Y)goto X;
(X i Y są symbolami zastępczymi); d) jest++
, ale nie=
, więc prawdopodobnie niektóre++$Z
od 1 do 8; e) aby uzyskać litery z liczby całkowitej, potrzebujemychr()
(zwykle) - tam była; f) teraz musiałem tylko znaleźć numery 96 i 8 dla chr i if. Następnie wypełnij symbole zastępcze i volià.PHP, rozmiar 54, autor: Steve Robbins
Myślę, że to nie oryginalne rozwiązanie.
źródło
echo
iwhile
, ale potem nie udało mi się znaleźć pętli, która daje 42.while
w moim oryginale.C, es1024, długość 70
Trudność polegała na tym, aby śledzić wszystkie niepotrzebne postacie ... poważnie ... Musiałem je przerobić około 10 razy. Jedyne, co mnie martwiło, to to,
.
że jakoś utknąłem w środku ciąguprintf
formatu i stało się to niewidoczne!źródło
Python 3, rozmiar 110, autorstwa Sp3000
To była fajna :)
źródło
Haskell, rozmiar 34, autor: Petr Pudlák
Pamiętaj, że ten program musi być uruchomiony na komputerze 32-bitowym. Jeśli chcesz sprawdzić, czy jest to poprawny program i masz komputer 64-bitowy, możesz użyć tego:
Odgadnięcie „ramki” programu było dość łatwe
main=print(0x<hex digits>^0x<hex digits>::Int)
. Cała magia polegała na poszukiwaniu właściwego sposobu podziału i porządkowania cyfr. Nie zrobiłem tu zbyt wiele mądrego, po prostu poszukiwania z użyciem siły brutalnej ... chociaż starałem się nadużyć faktu, że niektóre cyfry zostały zduplikowane, prawdopodobnie w bazie i wykładniku znajdowała się prawdopodobnie taka sama liczba cyfr, a ostatnia cyfra bazy prawie na pewno nie była parzysta. Pełny kod wyszukiwania znajduje się poniżej; wykorzystuje pakiet multiset-grzebień . Pełne wyszukiwanie zajmuje około 10:33 na moim komputerze (i oczywiście daje tylko jedną poprawną odpowiedź).źródło
JavaScript, 82, autor: TrungDQ
Trwało wieczność, aby uzyskać prawidłowe indeksy.
źródło