To wyzwanie dla gliniarzy i rabusiów . Przejdź do wątku rabusiów tutaj .
Wyzwanie to obejmuje dwie sekwencje OEIS wybrane przez gliniarzy - S 1 , S 2 - oraz to, jak dobrze te sekwencje można zagrać w golfa i zaciemnić.
Wyzwanie gliniarzy
Twoim wyzwaniem jako gliniarza jest wybranie swobodnie dostępnego języka i dwóch sekwencji OEIS. Następnie napisz kod A w tym języku, który pobiera dane wejściowe n i wytwarza S 1 (n). Kiedy ten kod został zmodyfikowany przez odległość Levenshteina z X znaków (gdzie X nie więcej niż 0.5 * (length A)
) i przekształcony kodu B w tym samym język musi następnie wytwarzać S 2 (n). Musisz napisać ten kod B , ale nie ujawniaj go, dopóki wyzwanie nie będzie bezpieczne (patrz poniżej).
Zgłoszenia gliniarzy muszą zawierać nazwę języka, pełny kod A , liczbę bajtów A , wartość X liczby zmian w dostępie do ich tajnego kodu B oraz wybrane numery sekwencji S 1 i S 2 . Możesz wybrać, czy każda sekwencja ma być indeksowana 0, czy indeksowana 1, ale określ ją w swoim zgłoszeniu.
Aby złamać konkretne zgłoszenie, złodzieje muszą wymyślić program C w tym samym języku (i wersji), który wytwarza S 2 (n) i zmienia znak Y na inny niż A (z Y <= X
). Rabusie niekoniecznie muszą znaleźć dokładnie ten sam kod B, który wyprodukował gliniarz (potajemnie).
Wygrywanie i punktacja
Jeśli twoja odpowiedź policjanta nie zostanie złamana w ciągu 7 dni (168 godzin), możesz ujawnić swoje własne rozwiązanie B , w którym to momencie twoja odpowiedź jest uważana za bezpieczną. Dopóki nie ujawnisz swojego rozwiązania, może ono zostać złamane przez rabusiów, nawet jeśli minęło już 7 dni. Jeśli twoja odpowiedź się popsuła, zaznacz to w nagłówku odpowiedzi wraz z linkiem do odpowiedzi odpowiedniego rabusia.
Gliniarze wygrać mając niezarysowanego przedstawienie z najkrótszym A . W przypadku remisu jako remis zostanie użyty najmniejszy X. Jeśli nadal remisuje, wcześniejsze zgłoszenie wygra.
Dalsze zasady
- Nie wolno używać żadnych wbudowanych funkcji do mieszania, szyfrowania lub generowania liczb losowych (nawet jeśli generator liczb losowych zostanie ustawiony na stałą wartość).
- Dozwolone są programy lub funkcje, ale kod nie może być fragmentem i nie można zakładać środowiska REPL.
- Możesz przyjmować dane wejściowe i przekazywać dane wyjściowe w dowolnym dogodnym formacie . Metody wejścia / wyjścia muszą być takie same dla obu sekwencji.
- Ostatecznym kalkulatorem odległości Levenshteina dla tego wyzwania jest ten na Planet Calc.
- Oprócz bycia wyzwaniem CnR, jest to również golf golfowy, więc obowiązują wszystkie zwykłe zasady gry w golfa.
(0.5*len(A))