To jest wątek gliniarzy. Wątek rabusiów idzie tutaj .
Napisz program lub funkcję składającą się wyłącznie z drukowalnych znaków ASCII (z wyłączeniem tabulacji i nowego wiersza), które generują co najmniej 5 drukowalnych znaków ASCII w porządku rosnącym (od spacji do tyldy / 32 do 126). Postacie mogą być wyprowadzane kilka razy, o ile sąsiadują ze sobą. Pojedynczy znak nowej linii jest akceptowany. Musisz podać pełny wynik, a na każde 6 znaków w kodzie musisz podać jeden znak w kodzie, w miejscu, w którym się pojawia. Jeśli twój kod ma 5 lub mniej znaków, musisz ujawnić tylko długość. Nie ujawnisz więcej niż 1 znak na 6 w swoim kodzie.
Więc jeśli twój kod alphaprinter
wypisuje alfabet z az, musisz ujawnić 2 znaki swojego kodu (użyj innych znaków podkreślenia), na przykład:
al__________ // or
__p__p______ // or
__________er
Zasady / specyfikacje:
- Nie można dołączyć końcowych białych znaków, które nie mają funkcji.
- Nie możesz używać komentarzy (ale złodzieje mogą używać komentarzy podczas łamania kodu)
- Wbudowane operacje podstawowe kryptograficzne (w tym wszelkie rng, szyfrowanie, deszyfrowanie i mieszanie) są niedozwolone.
- W językach, w których domyślne dane wyjściowe są takie jak w MATLAB:,
ans =
to jest akceptowane, o ile jest wyraźnie określone i pokazane, żeans =
jest generowane. Należy również jasno stwierdzić, czy jest to część „rosnącego wyniku”, czy nie. - Wynik musi być deterministyczny
- Używanie niewolnego języka nie jest akceptowane
- Dane wyjściowe nie muszą być kolejnymi znakami. Zarówno
abcde
iabcdg
są ważne wyjścia. - Znaki nie muszą być rozróżniane, o ile wynik zawiera co najmniej 5 znaków.
aaaaa
iaaacc
są ważne. - Odpowiedzi, które zakładają, że środowisko REPL nie są uważane za prawidłowe programy lub funkcje i dlatego są niedozwolone.
- STDERR nie jest uważany za prawidłowy wynik, ale dane mogą być zapisywane w STDERR.
Jeśli ujawnione postacie są podkreślnikami, musisz je zidentyfikować, jak pokazano poniżej. W tym przypadku druga i szósta postać są odsłonięte, a pozostałe są nieznane.
_____________
| |
Uwaga: Rabusie muszą tylko znaleźć kod, który daje takie same wyniki. Język, długość rozwiązania złodziei i pozycja ujawnionych znaków również muszą być takie same.
Twój wynik to liczba znaków w kodzie. Zwycięzcą zostanie zgłoszenie o najniższym wyniku, który nie został złamany w ciągu 7 dni. Tylko zgłoszenia przesłane w 2015 r. (UTC) kwalifikują się do wygranej. Zgłoszenia przesłane później są mile widziane, ale nie można wygrać.
Aby ubiegać się o wygraną, musisz ujawnić pełny kod (po 7 dniach).
Twój post powinien mieć następujący format (nn to liczba znaków):
Język, znaki nn
Wydajność:
abcdefghijklmnopqrstuvwxyz
Kod (12 znaków):
al__________
Jeśli kod jest pęknięty, wstaw [Cracked] (link do crackera) w nagłówku. Jeśli przesłanie jest bezpieczne, wstaw „Bezpieczny” w nagłówku i ujawnij pełny kod w swojej odpowiedzi. Tylko odpowiedzi, które ujawniły pełny kod będą kwalifikowały się do wygranej.
print ( "abcde" )
, mogę ujawnić trzy białe znaki?