W bardzo nietypowym wypadku z udziałem małej próbki radu, porażonego prądem wieloryba i trzech gumowatych niedźwiedzi, część kodu źródłowego The Management ™ została zmutowana. Mało kto wie, że zarząd Management ™ wiedział, że to właściwie policjanci © byli odpowiedzialni za próbę udaremnienia „złych” planów zarządzania ™. Więc Robbers® został zatrudniony w celu odzyskania oryginalnego kodu, bo kto czasami nie lubi być zły?
Uwaga: To wyzwanie było w dużej mierze zainspirowane przez Rozszyfrowanie kodu źródłowego .
Opis
To wyzwanie dla gliniarzy i rabusiów .
- Do policjantów będzie napisanie programu (zmutowana kod), który wykonuje zadania nr 1 (a także napisać program, który wykonuje zadania nr 2, ale jest trzymana w tajemnicy).
- W rabusie będą próbować odwrócić „mutacja” i zmienić ten oryginalny kod do kodu, który wykonuje zadania # 2.
W tym wyzwaniem, Zadanie nr 1 będzie wysyłać n
th liczba pierwsza i Zadanie nr 2 będzie wyjście z n
th liczby Fibonacciego (który jest w jakiś sposób zło, zgodnie z Cops © każdym razie). Sekwencja Fibonacciego zdefiniowany jako ( n=1
→ 1
; n=2
→ 1
; n=3
→ 2
, ...), i z liczb pierwszych jest zdefiniowany jako ( n=1
→ 2
; n=2
→ 3
; n=3
→ 5
, ...).
Celem gliniarzy jest zminimalizowanie różnicy między programami, które wykonują Zadanie nr 1 i Zadanie nr 2, jednocześnie uniemożliwiając złodziejom odtworzenie kodu wykonującego Zadanie nr 2.
Zasady gliny
Policjanci napiszą dwa programy (jeden, który wykonuje Zadanie nr 1 i drugi, który wykonuje Zadanie nr 2) i podają do wiadomości publicznej następujące informacje:
- Pierwszy program (czyli wyjść z
n
th liczba pierwsza) - Edit odległość Levenshteina pomiędzy pierwszym i drugim programie programu
- Język programowania, w którym napisane są oba programy (musi być ten sam język dla obu programów)
Oba programy dotyczą następujących ograniczeń:
- Muszą mieć maksymalnie 128 znaków.
- Muszą używać tylko ASCII do wydruku (oraz nowych linii, które są również dozwolone).
- Uruchomienie musi zająć mniej niż 10 sekund
n=45
i nie jest wymagane, aby wygenerować poprawny wynik dla żadnego z nichn>45
. - Nie mogą używać żadnych funkcji mieszających ani kryptograficznych.
Zasady rabusiów
Rabuś spróbuje zmienić program gliniarza (który wykonuje Zadanie 1) w program, który wykonuje Zadanie 2 (niekoniecznie oryginalny program napisany przez gliniarza) w odległości edycji określonej przez gliniarza.
Już złamane zgłoszenie nie może zostać ponownie złamane (tylko pierwszy złodziej, który złamie zgłoszenie, otrzymuje kredyt).
Po złamaniu zgłoszenia wykonaj następujące czynności:
- Opublikuj odpowiedź na pytanie towarzyszące temu wyzwaniu (link) , podając język, swoje rozwiązanie i link do oryginalnej odpowiedzi.
- Pozostaw komentarz z tekstem „Pęknięty”, który prowadzi do opublikowanej odpowiedzi.
- Edytuj odpowiedź policjanta, jeśli masz uprawnienia do edycji (jeśli nie, zaczekaj, aż zrobi to za ciebie ktoś inny z wymaganymi uprawnieniami lub zasugeruj edycję).
Punktacja
Jeśli program gliniarza pozostanie bez krakowania przez 1 tydzień, policjant może opublikować oryginalny kod, który wykonuje Zadanie nr 2 (w określonej odległości edycji), a przesyłanie jest odtąd uważane za „bezpieczne”. Zwycięskie zostanie bezpieczne zgłoszenie o najmniejszej odległości do edycji. W przypadku remisu wygrywa najkrótszy program (oryginał, który wykonuje Zadanie nr 1). Jeśli dwa zgłoszenia są nadal powiązane, to jedno opublikowane wcześniej wygrywa.
Jeśli złodziej z powodzeniem złamie ułożenie gliny, jego ocena wzrośnie o odległość edycji tego ułożenia. Na przykład bandyta, który złamie przesłanie przy odległości edycji 3 i jeden przy odległości 5, otrzymuje 8 punktów. Złodziej z najwyższym wynikiem wygrywa. W przypadku remisu złodziej, który zdobył wynik jako pierwszy, wygrywa.