Jak dobrze znasz stronę? Dowiedzmy Się.
To wyzwanie dla gliniarzy i rabusiów . Wątek rabusia.
Jako policjant musisz:
- Znajdź nieusunięte, niezamknięte wyzwanie na tej stronie, aby odpowiedzieć. Wyzwanie nie może zawierać następujących tagów: gliniarze i rabusie , konkurs popularności , trolling kodu , podstępny , zajęty bóbr , król wzgórza , wskazówki , łączenie odpowiedzi . Wyzwanie musi mieć ograniczenia dotyczące prawidłowego wyniku.
- Wpisz ważny przedstawienie do prowokacji, w wolnym języku znaleźć na Wikipedii lub esolangs.org lub tryitonline . Zgłoszenie nie musi być konkurencyjne, a jedynie ważne. EDYCJA: Hashowanie w twoim zgłoszeniu jest niedozwolone
- Opublikuj zgłoszenie tutaj, zachowując wyzwanie w tajemnicy. Musisz opublikować całe zgłoszenie, a także język (i wersję, jeśli dotyczy).
Po tygodniu, jeśli nikt nie znalazł wyzwania, na które odpowiadasz, możesz opublikować wyzwanie, że twoje zgłoszenie odpowiada, w którym momencie twoje zgłoszenie jest bezpieczne . Warto N punktów, gdzie N to liczba głosów pozytywnych na wyzwanie (stan na 17.11.2016 ) (Wyższa jest lepsza)
Aby złamać wyzwanie, złodzieje muszą znaleźć każde wyzwanie, dla którego przesłanie jest prawidłowe.
Uwagi:
- Jeśli wyzwanie wymaga danych wyjściowych
X
, a dane wyjścioweXY
lubYX
gdzieY
jest coś poza spacją, przesłanie nie jest ważne dla tego wyzwania. - Wyzwanie nowsze niż 17.11.2016 jest niedozwolone.
- Dozwolone są języki nowsze niż ukryte wyzwanie.
- Zastrzegam sobie prawo do zakazania niektórych wyzwań, jeśli mają one szerokie zastosowanie (można je zastosować do większości wszystkich zgłoszeń).
- Dzięki Danielowi za wstępny pomysł!
Nieprzetworzone zgłoszenia:
<script>site = 'meta.codegolf'; postID = 5686; isAnswer = false; QUESTION_ID = 100357;</script><script src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script><script>jQuery(function(){var u='https://api.stackexchange.com/2.2/';if(isAnswer)u+='answers/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJeRCD';else u+='questions/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJO6t)';jQuery.get(u,function(b){function d(s){return jQuery('<textarea>').html(s).text()};function r(l){return new RegExp('<pre class="snippet-code-'+l+'\\b[^>]*><code>([\\s\\S]*?)</code></pre>')};b=b.items[0].body;var j=r('js').exec(b),c=r('css').exec(b),h=r('html').exec(b);if(c!==null)jQuery('head').append(jQuery('<style>').text(d(c[1])));if (h!==null)jQuery('body').append(d(h[1]));if(j!==null)jQuery('body').append(jQuery('<script>').text(d(j[1])))})})</script>
cops-and-robbers
obfuscation
Nathan Merrill
źródło
źródło
Odpowiedzi:
Pip , 9 bajtów ( bezpieczny , 15 punktów)
To, co robi, powinno być łatwe do zrozumienia, ale pytanie brzmi: dlaczego ... ( TIO )
Wyzwaniem było Jaki jest język? Cel: parsowanie nazwy języka programowania z nagłówka odpowiedzi PPCG. Na przykład:
Nie jestem pewien, czy to nie pasuje do „Wyzwanie musi mieć ograniczenia dotyczące prawidłowej mocy wyjściowej”, ponieważ jest to wyzwanie z baterii testowej ocenione „procentem poprawnych testów”, a zatem nie wymaga poprawnego wyniku dla wszystkich danych wejściowych. Powiem jednak, że powyższy kod ma około 60% poprawnej stawki, co nie jest złe dla czegoś tak prostego.
źródło
ht:w"\w+"1
/@:w"\w+"1 1
, co zmniejsza dohtcw
/htcz
jeśli tylko białe znaki mają znaczenie, ale żaden z nich nie wyświetla żadnych wyników. Byłoby to również w stanie wyciągnąć minuty z formatu GG: mm: ss lub wyodrębnić nazwę zmiennej z deklaracji w stylu C lub liczb po przecinku. Ale nie mogę znaleźć pytań, które wymagałyby tych rzeczy ...: /Perl - Cracked by DLosc
Dajmy łatwy dla osób nie esolang
Biegnij z
-nl
Wyzwanie: Wygodny kontroler palindromu
Kod ulega awarii po wydrukowaniu prawdziwości, ale zgodnie z tym meta postem, o ile produkuje poprawne dane wyjściowe przed awarią, a wszelkie błędy są wysyłane do STDERR, jest to prawidłowe rozwiązanie.
źródło
Sześciokąt , 548 bajtów, Pęknięty
Wypróbuj online!
źródło
.
wymaganego przez to wyzwanie.)Perl, bezpieczny , 18 punktów
Edycja : Zmodyfikowałem koniec kodu (zobacz historię edycji), aby obsłużyć przypadek krawędzi (wyzwanie nie mówi nic o tym, a autor nie odpowiedział na pytanie, ale przynajmniej ten kod to obsługuje) . Ale algorytm i logika kodu pozostają takie same.
Ten kod nie jest zaciemniony (tylko grał w golfa). (Oznacza to, że
-n0E
nie są opcjonalne).Nie wiem, czy to trudne, czy nie, ale myślę, że naprawię się, gdy ktoś to złamie.
Objaśnienia:
Wyzwaniem było Czy labirynt można rozwiązać? .
Ten kod znajdzie każdą osiągalną komórkę labiryntu (i oznaczy je a
A
): jeśli komórka dotknie komórki oznaczonej aA
, jest osiągalna i my też oznaczamy jąA
; i robimy to ponownie (redo
). Dokonuje się tego dzięki dwóm wyrażeniom regularnym:s/(^0|A)(.{@{+}})?0/A$2A/s
sprawdza, czy spacja znajduje się po prawej lub na dole aA
, as/0(.{@{+}})?A/A$1A/s
sprawdza, czy spacja jest po lewej, czy na górzeA
. Na koniec, jeśli ostatnia komórka zawieraA
osiągalny, w przeciwnym razie nie (tosay/A$/+0
sprawdza;+0
jest tutaj, aby upewnić się, że wynik będzie0
lub1
zamiast pustego ciągu i1
).Zauważ, że
/.*/
dopasuje całą linię, a tym samym ustawienie@+
do indeksu końca pierwszego wiersza, który okazuje się być rozmiarem linii, co pozwala na użycie,.{@{+}}
aby dopasować dokładnie tyle znaków, ile jest na linii. (@{+}
jest równoważne@+
, ale tylko te pierwsze mogą być używane w wyrażeniach regularnych)Aby uruchomić:
(a jeśli zamienisz
1111011
wiersz na1111111
, nie można go już rozwiązać, a wynik będzie0
zamiast1
)źródło
Perl, 56 bajtów, sejf (14 punktów)
Wyzwanie było tym , wymagającym stworzenia innego algorytmu; musisz być w stanie wprowadzić dwa pliki i wyprowadzić różnicę lub wprowadzić plik i różnicę i wyprowadzić drugi plik. Punktacja tego wyzwania jest kodem , dzięki czemu najmniejszy diff jest zwycięzcą; jednak to wyzwanie nie wymaga konkurencyjnej odpowiedzi, jest po prostu zgodne ze specyfikacją, więc napisałem program różnicowy w golfowy sposób, który po prostu używa XOR do łączenia danych wejściowych (co oznacza, że ten sam program działa dla różnicowania i niezróżnicowane).
Najtrudniejszą częścią jest odtworzenie długości oryginalnych plików. Dane wejściowe są określone jako ASCII, który jest siedmiobitowym zestawem znaków, dzięki czemu mogę użyć ósmego bitu do śledzenia długości pliku. Podczas różnicowania ustawiamy wysoki bit każdego bajtu za pomocą
y///
instrukcji (która jest nieco bardziej zaciemniona niż w przypadku arytmetyki bitowej). Kiedy un-diffing (rozpoznany przez zauważenie, że wejście ma już ustawiony wysoki bit), usuwamy NULs z wyjścia. ( Właśnie zdałem sobie sprawę, że to się nie powiedzie, jeśli wejście zawiera NUL bajtów; jednak wyzwanie jest zdefiniowane w kategoriach testowej baterii i na szczęście nie sądzę, że w akumulatorze są bajty NUL. Jeśli tak, to wtedy ten program byłby niepoprawny i musiałby zostać zdyskwalifikowany; problem z policjantami i złodziejami jest to, że nikt inny nie ma wystarczających informacji, aby wskazać łatwe do naprawienia błędy w Twojej odpowiedzi!)źródło
Oktawa, 15 punktów! BEZPIECZNY
Wypróbuj online tutaj .
Wyjaśnienie:
Kod pobiera ciąg wejściowy
x
zawierający jedynki i zera10010110110101
oraz liczbę całkowitąy
.Aby znaleźć średnią ruchomą sekwencji w MATLAB / Octave, możesz:
Ponieważ interesuje nas tylko lokalizacja wartości maksymalnych, a nie rzeczywistych, nie musimy się przejmować konwertowaniem ciągu na liczby.
(x.^2)
obliczy wszystkie wartości ASCII48,49
dla0,1
. Jest to konieczne, ponieważ Octave nie może używaćcumsum
bezpośrednio na postaciach.cumsum(+x)
byłyby dwa bajty krótsze, ale ujawniłyby, żex
jest to ciąg znaków.To jest właściwie dość dobrze gra w golfa (z wyjątkiem
.^2
zamiast+
). Oczywiście splot byłby prostszy.źródło
MATL . Pęknięty
Wypróbuj online!
Wskazałem wejście i wyjście, nawet jeśli nie jest to konieczne. Ponieważ i tak znajduje się w historii edycji: program wprowadza dwie liczby i wyprowadza jedną liczbę.
źródło
C #, 590 bajtów, pęknięty
Prawdopodobnie dość łatwy, również dość długi program, _,
źródło
Func<string, int, string>
. Wygląda na to, że to jakiś szyfr klawiatury. Liczba to liczba znaków, które należy przesunąć w prawo na klawiaturze (tj.("t",1)
=y
).05AB1E , 27 bajtów, pęknięty!
W przypadku tego zgłoszenia wymagane jest również wejście, aby działało. Nie powinno być zbyt trudne do złamania.
Objaśnienie (dla wyzwania):
Wykorzystuje kodowanie CP-1252 . Wypróbuj online!
źródło
아희 (Aheui) , 0 bajtów, pęknięty
Wypróbuj tutaj! (Program jest już wpisany dla Ciebie: p)
źródło
Python, 935 bajtów
Przepraszam, że użyłem zaciemnienia, ale nie jest to zabronione i znacznie łatwiejsze. (I nie miałem tyle czasu, żeby to zrobić sam ...)
źródło
9**99
bez drukowania niczego (zajmuje to również dużo czasu)Ruby ( cracked by DLosc )
źródło
p
kiedy skopiowałem kod. Pęknięty więc.MATL . Bezpiecznie , 93 punkty
Wypróbuj online!
Wyjaśnienie
Wyzwaniem był ślad ekologiczny kodu źródłowego .
Kod oblicza wagę Hamminga (liczbę jedności) w binarnej reprezentacji kodów ASCII ciągu wejściowego; z wyjątkiem tego, że ciąg
test
wyjściowy0
(zamiast jego ciężaru Hamminga, który jest17
).Specjalna obudowa tego sznurka jest nieco zaciemniona. Program najpierw oblicza tablicę kolejnych różnic kodów ASCII wejścia i odwraca go. Do
test
tego daje[1 14 -15]
.Następnie tablica utworzona przez pierwsze
n
potęgi z14
jest obliczana ([1 14 196 ...]
), gdzien
jest długość wejściową; i pierwszefloor(n/2)
wartości są zachowane. Totest
daje dane wejściowe[1 14]
. Negowana suma jest dołączana do tej tablicy, co daje[1 14 -15]
dane wejściowetest
. Jest to sprawdzane pod kątem równości z odwróconą tablicą kolejnych różnic, która została wcześniej uzyskana.Z drugiej strony suma kodów ASCII znaków wejściowych jest obliczana i porównywana
448
, generowana jako (kolejna) różnica elementów w tablicy[2^6 2^9]
(gdzie^
oznacza moc).Dane wejściowe
test
to jedyny ciąg znaków z odwróconymi kolejnymi różnicami formy[1 14 -15]
i sumy448
. Różnice[]
lub[1]
(w przypadku krótszych łańcuchów inoyt) nie są zgodne z całkowitą sumą448
. Różnic[1 14 196]
lub większych nie można osiągnąć za pomocą znaków ASCII.Kod sprawdza, czy wynik testu dla pierwszego warunku (kolejne różnice) nie jest mniejszy niż zanegowany wynik drugiego warunku (suma całkowita). Daje to
0
wtedy i tylko wtedy, gdy oba warunki są spełnione. Na koniec mnoży się to przez liczbę jedynek w binarnej reprezentacji kodów ASCII wejścia.źródło
CJam ( bezpieczny , 21 punktów)
To anonimowy blok (funkcja).
źródło
Python 3, ~ 2000 bajtów, (bezpieczny: 23 punkty)
Oryginalny program
Wyzwanie
W rzeczywistości jest to odpowiedź na moje własne wyzwanie, Primenary Strings . Wybrałem to, ponieważ prawie wszystko wyjdzie
0
, oprócz kilku danych wejściowych, do których włamywacz prawdopodobnie nie wejdzie. Kod jest prostym algorytmem, ale mocno zaciemnionym (ręcznie).źródło
Pip , 13 bajtów
Wypróbuj online (podaj dane jako argumenty, a nie dane wejściowe).
źródło
JavaScript, 533 bajtów, pęknięty! autor: Dave
Nie moje ulubione zaciemnianie, ale jest trochę fajne. Jak zadzwonić
RESULT(inputs)
.Mogę przyznać nagrodę w wysokości +50 punktów, jeśli szczegółowo wyjaśnisz, co robi mój kod wraz z twoim crackem. (Nie muszą być razem, więc nie krępuj się FGITW, jeśli ci to odpowiada.)
źródło
Pyke, 3458 bajtów, SAFE , wynik 99
Wypróbuj tutaj!
Istnieje kilka (30)
0x1b
bajtów, które wydają się być zjedzone przez SE.źródło
Oktawa, 40 punktów. BEZPIECZNY
Nieco zaciemniona odpowiedź na dość popularne wyzwanie.
Polecam przetestować to na oktawie-online . Ideone nie jest tak dobry, jeśli chodzi o STDIN.
To było wyzwanie dla symulatora dźwigni 2015. Wpisz w formularzu
'123^32
. Wyjście będzie-1 0 1
dla lewych, zrównoważonych i prawych w tej kolejności.Wygląda to tak, gdy jest w pełni golfowy :
Wyprowadza to odpowiednio
-Inf, NaN, Inf
dla L, B, R.źródło
Haskell, BEZPIECZNY
Wypróbuj na Ideone . "Stosowanie":
W wyzwaniu Sznurek Shenanigans jeden otrzymuje sznurek i dwa znaki, a następnie powinien zastąpić każde wystąpienie pierwszego znaku drugim. Jednak dane wejściowe to jeden ciąg zawierający tylko rzeczywisty ciąg w cudzysłowie, a dwa znaki są oddzielone białymi znakami:
źródło
TeX, 240 bajtów, SAFE , wynik 129
Zapisz jako
jeopardy.tex
, a następnie uruchompdftex jeopardy.tex
i otwórzjeopardy.pdf
.Wynik: plik PDF z tekstem
N
(i numerem strony 1).źródło
Python 3, Cracked!
Pisanie tego było przezabawne, mimo że w końcu łatwo było je złamać :)
źródło
(sum([x%4<1 for x in range(min(D),max(D))]))
Pyth - Cracked by Maltysen
Jeśli to pomaga, Pyth nie był jedną z odpowiedzi na ukryte wyzwanie.
Wypróbuj to!
źródło
C #, 91 bajtów
źródło
Mathematica, 161 bajtów
źródło
BrainFuck - 140 Bytes, Cracked by daHugLenny
Wypróbuj tutaj!
źródło
C ++ 14, pęknięty
Pobiera różnorodną liczbę parametrów i zwraca a
vector<int>
.Stosowanie:
źródło
g++
a jeśli twoja wersja nie jest przynajmniej6.2
lub coś, czego potrzebujesz-std=c++14
Mathematica, 34 bajty, pęknięty
Nazwana funkcja (
±
).źródło
Rubinowy, 50 bajtów
wynik:
400
źródło
Python 2.7, 45 bajtów
Wskazówka (a może nie): „ryba używa numpy”.
2016.11.23 - druga wskazówka: „Nie zostawiaj niczego pływającego!”
źródło