Rozszyfruj kod źródłowy


142

Uwaga : Wyzwanie to jest teraz zamknięte dla nowych zgłoszeń policjantów. Ma to na celu zapewnienie, że nikt nie będzie mógł publikować zgłoszeń, które pozostają nierozpoznane, ponieważ nie ma już wystarczającej liczby rabusiów zainteresowanych tym wyzwaniem.

W tej grze gliniarzy i rabusiów każdy policjant napisze prosty program, który da jedno wyjście. Następnie podadzą do publicznej wiadomości cztery rzeczy dotyczące swojego programu:

  1. Język
  2. Długość programu
  3. Pożądana moc wyjściowa
  4. Zaszyfrowana wersja kodu źródłowego

Następnie złodzieje muszą rozszyfrować kod źródłowy, aby ich program działał jak oryginał.


Zasady gliny

Masz napisać prosty program, który złodzieje spróbują odtworzyć.

Twój oryginalny program musi mieć prostą funkcjonalność: po uruchomieniu wyświetla pojedynczy ciąg / liczbę i zatrzymuje się. Powinien dawać takie same dane wyjściowe niezależnie od tego, kiedy / gdzie jest uruchamiany, i nie powinien zależeć od dodatkowych bibliotek lub Internetu.

Twój program i dane wyjściowe muszą korzystać z ASCII do wydruku (dozwolone są nowe wiersze i spacje). Dane wyjściowe nie powinny mieć więcej niż 100 znaków, a uruchomienie programu na rozsądnej maszynie zajmuje mniej niż około 5 sekund. Nie możesz również używać haszowania (ani innych funkcji kryptograficznych) w swoim programie

Następnie podajesz zaszyfrowaną wersję kodu źródłowego i wymagane dane wyjściowe. Możesz mieszać kod źródłowy, jak chcesz, pod warunkiem, że znaki są zachowane.

Twój wynik to najkrótszy przesłany program, który nie został złamany. Po upływie tygodnia nieskradzione poddanie się stanie się odporne. Aby ubiegać się o tę immunitet, należy edytować swoją odpowiedź, aby pokazać poprawną odpowiedź. (Wyjaśnienie: Dopóki nie ujawnisz odpowiedzi, nie jesteś odporny i wciąż możesz zostać złamany.) Wygrywa najniższy wynik.

Prosty przykład odpowiedzi gliniarza

Perl, 20

ellir"lnto Wo d";prH

Hello World

Lub...

Perl, 15

*3i)xp3rn3*x3t(

272727

Zasady rabusiów

Rabusie opublikują swoje próby włamania jako odpowiedzi w osobnym wątku, który znajduje się tutaj .

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) i jesteś pierwszym trafnym zgadywaczem, 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.

Prosty przykład Rabuś Odpowiedzi

Twój program był print "Hello World";. (Chociaż print"Hello World" ;mógł również działać.)

Twój program był print(3**3x3)x3

Bezpieczne zgłoszenia

  1. ASP / ASP.Net, 14 (Jamie Barker)
  2. Befunge-98, 15 (FireFly)
  3. GolfScript, 16 (Peter Taylor)
  4. CJam, 19 (DLosc)
  5. GolfScript, 20 (user23013)
  6. Perl, 21 (primo)
  7. Python, 23 (mbomb007)
  8. Ruby, 27 (histocrat)
  9. SAS, 28 (ConMan)
  10. Ruby, 29 (histocrat)
  11. Python, 30 (mbomb007)
  12. JavaScript, 31 (hsl)
  13. Ruby, 33 (histocrat)
  14. Marbelous, 37 (es1024)
  15. Ruby, 43 (histocrat)
  16. PHP, 44 (kenorb)
  17. Ruby, 45 (histocrat)
  18. Marbelous, 45 (es1024)
  19. Python 2, 45 (Emil)
  20. PHP, 46 (Ismael Miguel)
  21. Haskell, 48 (nooodl)
  22. Python, 51 (DLosc)
  23. Python, 60 (Sp3000)
  24. Python 2, 62 (muddyfish)
  25. JavaScript, 68 (Jamie Barker)
  26. Mathematica, 73 (Arcinde)
  27. Haskell, 77 (dumny skarbiec)
  28. Python, 90 (DLosc)
  29. C ++, 104 (user23013)
  30. ECMAScript 6, 116 (Mateon1)
  31. C ++ 11, 121 (es1024)
  32. Trawa, 134 (user23013)
  33. PowerShell, 182 (christopherw)

Nierozwiązane zgłoszenia

Według czasu nadania. Ta lista dzięki uprzejmości wielu użytkowników.

Małe narzędzie do weryfikacji rozwiązań, dzięki uprzejmości n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨d̷̰̀ĥ̷̳


4
@ xnor Tak, to właśnie to oznacza.
PhiNotPi


7
Prawdopodobnie powinieneś określić, że zwycięzca musi opublikować oryginalny kod źródłowy po tygodniu. Co uniemożliwia mi publikowanie bełkotów i twierdzenie, że żaden z rabusiów nie otrzymał właściwej odpowiedzi?
user2023861

62
Pomyślałem: „Och, po prostu napiszę program malbolge, wymieszaj go i wygraj!”. Ale potem próbowałem napisać program malbolge.
rodolphito,

8
Ostrzeżenie: gliniarze, nie używaj Ideone do testowania swoich zgłoszeń, ponieważ przechowują one twoje programy i inne osoby mogą je zobaczyć.
rodolphito,

Odpowiedzi:


65

Python 3, rozmiar 74 ( pęknięty )

Python po prostu nie był taki sam po ponownej edukacji przez Big Brother.

Wejście:

print(war is peace)
print(freedom is slavery)
print(ignorance is strength)

Na końcu wiersza 1 i 2 znajdują się dwie nowe linie.

Wynik:

True
True
True

Zauważ, że każdy Truejest w osobnej linii.


1
Co jest za drzwiami 101?
FryAmTheEggman

5
Pierwotnie miałem 2+2==5czwarte stwierdzenie, dopóki nie stwierdziłem, że =stało się to zbyt łatwe.
xnor

5
Nicea z 1984 r.
Justin

2
Pęknięty . To było doskonałe.
Sp3000,

52

Python 3, rozmiar 12 ( pęknięty )

print (abcd)

Mój program nie wytwarza danych wyjściowych i nie zawiera błędów.


4
Pęknięty . Fajnie, rozwiązanie jest bardzo sprzeczne z intuicją.
matsjoyce,

2
Bardzo miło, jeździłem przez intchwilę.
Fox Wilson,

@matsjoyce Ładnie zrobione. To było moje zamierzone rozwiązanie.
xnor

1
@matsjoyce Tak, spodziewałem się, że w końcu ktoś to zrobi. Mimo to zachęcam wszystkich, aby nie psowali się i próbowali rozwiązać to ręcznie. Zapewniam cię, że to urocze rozwiązanie.
xnor

Myślę, że rozumiem. Rozwiązanie, które znalazłem, nie działa, jeśli najpierw napiszę, pythona następnie wpisz moje rozwiązanie w wierszu polecenia. Ale to działa, jeśli wstawię moje rozwiązanie do pliku i typu python file.
kasperd


26

Python 2, rozmiar 50

Pęknięty

Znamy już odpowiedź na pytanie, ale jakie jest pytanie?

Kod

print *********************--///222222222222222222

Pamiętaj, że nie ma żadnych spacji ani znaków nowej linii. Jedynym białym znakiem jest pojedynczy odstęp po print.

Wynik

42

Próbowałem zrównoważyć długość kodu i trudność, ale nie zaskoczyłoby mnie to, gdyby trochę go przegapiłem. Mam nadzieję, że przynajmniej to powstrzyma brutalną siłę.



6
Byłoby lepiej z rozmiarem 42.
CVn

23

Pyth - 71 Cracked

Kod

C-3P0: "Sir, the possibility,..."* 
Han Solo: "Never Tell Me The Odds!"

Wynik

3720

* Pierwotnie George Lucas kazał Hanowi przerwać C3-PO. **

** Nazwał to swoim największym pomysłem od czasów Jar-Jar.


Interesująca uwaga: pomimo wszystkich zmian, które przeszedł Pyth, wciąż jest tu ważna odpowiedź!


Oryginał

ts,*s,y30 l" : : i i Han Solo "eP-C"h"TsrhT

Wyjaśnienie

Pozostałe znaki przechodzą do następnego wiersza. Pyth interpretuje tylko pierwszy wiersz pliku.

ts,zrobić 2-krotkę i otrzymać ich sumę -1.
*pomnóż:
s,y30 l"..."zsumuj 2-krotkę zawierającą 2 * 30 i długość łańcucha (18).
eP-C"h"Tuzyskać największy współczynnik pierwszy wartości ascii h minus 10 (47).
srhTuzyskać sumę liczb od 0-10.

W sumie to po prostu oblicza: (30 * 2 + 18) * (47) + 55-1. Po przeczytaniu odpowiedzi @ isaacg zauważyłem, że istnieje niezwykle proste rozwiązanie: *h30tC"y"31 * 120.

Zaktualizowano

*h30tC"y" "-P:Sir, e possibilit,...
Han Solo: Never Tell Me The Odds!"
Nadal działa nawet po całym tym czasie ...

Przepraszam za słabe formatowanie wyjaśnień, nie wiem jak używać bloków spoilerów: S (@ Sp3000 sprawiło, że jest to dla ciebie trochę przyjemniejsze)

Teraz możesz uruchomić Pyth online! Wypróbuj tutaj. Dzięki @isaacg :)


9
Powyższe może zawierać rażąco wymyślone informacje na temat stworzenia Gwiezdnych wojen.
FryAmTheEggman


@FryAmTheEggman Możesz używać znaczników w blokach, np.<br>
Sp3000,

21

CJam, rozmiar 51 [BEZPIECZNY]

Kod

main(int argc,char* argv){printf("Hello, World!");}

Wynik

55
2292213229222231957511222223333751125537511222222135723331131931959319319

Możesz się z nim bawić w tłumaczu online .

To powinno być bardziej krakowalne niż się wydaje.

Wskazówka

Zacznij od drugiego wiersza wyniku. Kilka cyfr nie pojawia się w tym wszystkim, a inne podejrzane często. Dlaczego tak może być? Jeśli potrafisz to rozszyfrować, reszta powinna prawie na miejscu.

Rozwiązanie

"that rrrrraging london Hail!v"{elccimf(;W))},(*,pa

Pogoda musiała być całkiem zła, kiedy wymyśliłem ten anagram ...

Podpowiedź miała wskazywać na fakt, że druga linia składa się ze ściśniętych pierwszych faktoryzacji. Miałem nadzieję, że stamtąd będzie można określić, ile i które znaki trafią do łańcucha, pozostawiając tylko kilka znaków na końcu.


9
Chwila, czy to jest zakodowane?
TheDoctor,

18

Befunge-98, rozmiar 15 [BEZPIECZNY]

Kod

"quick"
*+.@\_j

Wynik

3314

Oryginał

„u_ji@q.+k*c
„
Ciekawą, ale dość dobrze znaną funkcją Befunge jest to, że możesz zakończyć ciąg z tym samym cytatem, który go rozpoczyna, co w zasadzie przesuwa całą linię (z wyjątkiem cytatu) na stosie. Jako dodatkowy trik, I ponownie wykorzystać ten sam ciąg ponownie , poprzez wykorzystanie uodwrócić wskaźnik instrukcji. To tylko trochę arytmetyki: podstawową ideą jest zsumowanie wszystkich tych wartości (co odbywa się za pomocą kpowtórzenia +operacji).


Na jakich interpreterach testowałeś to, aw szczególności jakie są ich założenia dotyczące przepustowości komórki?
Peter Taylor

@PeterTaylor Przetestowałem to na cfunge pod linuksem x86_64. Niektóre testy wydają się wskazywać, że używa 64-bitowych liczb całkowitych ze znakiem, chociaż mogę powiedzieć, że moje rozwiązanie nie zależy od semantyki przepełnienia, więc nie jestem pewien, czy to ma znaczenie.
FireFly,

Ok, więc nie powinienem szukać przepełnień 8-bitowych. Szkoda, że ​​mogło to uprościć;)
Peter Taylor

Ugh. Zrobiłem programy do drukowania 3312, 3300oraz kilka innych w pobliżu 3314. Tak blisko ...
Justin

@Quincunx doskonała ...: P
FireFly

16

GolfScript (16 bajtów) [BEZPIECZNY]

%%()*../1129n{}~

Oczekiwany wynik:

-117345085515973157874551915956356303213327583847247840186528288852476459638212404362749

Pierwotnym źródłem:

n)~{.*911%(}./2%


Czy to oczekiwane wyjście wyklucza końcowy znak nowej linii, czy też nowy wiersz po prostu nie zostanie wyprowadzony?
ProgramFOX,

@ProgramFOX, wyjście zakończy się nową linią. Jedyne znane mi sposoby unikania tego wymagałyby :.
Peter Taylor,


13

Python, 69 znaków [ cracked grc ]

Jajecznica:

((((((((((((())))))))))))),,,,accdddiiiiillmmnopprrrrrssssssttttttttu

Wynik:

1083

Ten jest po prostu nieszkodliwą zabawą :) Testowany na CPython 2.7.8, 3.3.2 i do cholery PyPy3 2.3.1.


Wyjaśnienie

Używa wbudowanych funkcji str, dict, listzbudować ciąg, a następnie stosuje mapsię ordprzekonwertować ciąg do listy wskazówki, które są następnie sumMed.




11

Python 3, 70 znaków

Jajecznica:

""(((())))****++++222222222;;;;;=======cccccccccceeeiinnpprrttxxxxxxxx

Wyjście (99 znaków):

388626024960000000000026872002432000000000000676169243200000000000007317718780000000000000028820330

Aktualizacja

Minął tydzień, więc zamiast zamieszczać odpowiedź, oto podpowiedź:

Spróbuj wziąć pierwiastek kwadratowy z liczby i pracować stamtąd



9

JavaScript, 94 Cracked przez FireFly

alert(' '' '''((()))+++,,,,,,,,,,,,,000111111114444577888;;;;;======[[[]]]aaafhinorrrrvvvxx||)

Wynik

fun in the sun

Oryginał

a=alert;v='';r=[1,7,8,14,11,8,14,10,0,5,14,4,7,8];for(x in r)v+=('h'+(1==0)+a)[r[x]]||'';a(v);


Mam wrażenie, że to nie zadziała we wszystkich przeglądarkach / silnikach. W jakim środowisku to przetestowałeś?
Martin Ender,


Och ... i byłem przekonany, że alertpierwszy, ponieważ wskaźniki tak dobrze pasowały do ​​potrzebnych postaci. Ciekawy zbieg okoliczności.
FireFly,

Właściwie miałem go również, kiedy zacząłem nad nim pracować, ale zmieniłem go, aby zmniejszyć różnice w przeglądarce.
SLuck49,

Nie działa w Chrome. Mam najnowszą wersję. MówiSyntax Error: Unexpected String
Oliver Ni

8

Ruby, 38 lat - złamany przez Martina Büttnera

print(succ(downcase!))$$$..[[]]6e0<><_

Wynik:

u

Oryginał:

$6.pincdwnca[]rescue$><<$!.to_s[((0))]



1
@ MartinBüttner Heh, tak naprawdę nigdzie w pobliżu oryginału. Ale twoje rozwiązanie jest prawdopodobnie jeszcze bardziej przerażające niż oryginał. ;)
Klamka

1
Hej, jest ryba
TheDoctor,

Więc printi downcase!były czerwone śledzie. Spodziewałem się użyć odpowiedzi puts, nie myślałem $><<.
kernigh,

7

Python 3, rozmiar 16 ( pęknięty )

Kod:

help tim__rolo__

Wyjście (z końcem nowego wiersza):

Hello world!


1
@ MartinBüttner Wiedziałem, że ktoś widział
pisankę

1
Nie zrobiłem tego, ale szybko go przeszukałem. ;) Szczerze mówiąc, gdybym się tak nie spieszył, prawdopodobnie widziałbym, że pozostałe postacie helloto anagram import. ^^
Martin Ender

7

Perl - 47 ( pęknięty przez grc )

Kod (tam też jest jedna spacja)

 """"$$$$$$((()))**....///;;[[]]~==01finoprrstx

Wynik:

012345012345012345012345012345

Możesz uruchomić go online tutaj i działa pod stricti warnings.



@grc Powiedziałbym, że jest ważny! Dobra robota! Drukuje właściwą rzecz. Jeśli chcesz uzyskać wskazówki na temat działającej wersji stricti warningsdaj mi znać.
hmatt1

7

Ruby, 33 - cracked przez user23013

enpsttux [[[]]]++\-\**????$$$$...

Wynik:

[*]

Oryginał:

puts ?[+[*?*..?]][$$-$$]+?\\.next


Która to wersja?
Lynn

@nooodl Mam 1.9.3, ale nie ma w tym nic specyficznego dla wersji.
Klamka

To trudne. Oto, co do tej pory mam: puts oczywiście będzie to pierwsze, istnieje .nextinne słowo kluczowe, którego można użyć, a reszta to rodzaj magii ze $zmiennymi ruby i tworzeniem tablicy znaków .... +1
rodolphito,


@ user23013 Nicea! Jednak nie oryginał; Prawdopodobnie powinienem mieć znaki wyjściowe, których tak naprawdę nie było w źródle;)
Klamka

7

Python2, 132 znaki

____        ,,,,:::''""""""""""((()))[[]]\\\0126aaaabcccceeeeeeeeeEffggiiiiiilllllmmmmnnnnnnooooopppppqqrrrrrrrrrssssStttttttuuvxxyy

Wyjście (z nową linią):

chance

Zaktualizowana wersja, 96 znaków

Odpowiedź na oryginalną wersję sugerowała execzamiast compile+ eval, więc oto wersja uproszczona:

____       :::''""(())[[]]\\\0126aaabcccceeeeeeeeEffiimmnnnnooopppqqrrrrrrrrrssStttttttuuxxxxyy

Aktualizacja: pęknięta

Całkowicie złamany przez Alexa Van Liewa i Kenny'egoTM . Oryginalne rozwiązania to (przewiń w prawo, aby wyświetlić spoiler):

                                                                                                                                eval(compile('try: compile("from __future__ import braces","","single")\nexcept SyntaxError as q:\n\tprint q[0][6:12]',"","single"))
                                                                                                                                exec('try:exec("from __future__ import braces")\nexcept SyntaxError as q:\n\tprint q[0][6:12]')
                                                                                                                                The hint meant "Consider {}, which are not present in the source code".

Ile tam jest nowych linii?
Sp3000,

Brak (nie licząc logicznych znaków nowej linii, takich jak \nliterały wewnątrz ciągów). W przypadku nowego wiersza kod może być krótszy.
Vi.

2
+1 za niedostarczenie wystarczającej ilości xsi cdla mnie, aby zrobić to, co chcę: P
Sp3000,

1
Mam wymyślić jakąś wskazówkę? Zacznijmy niejasnym jednym: Don't count ones which exist. Count ones which do not exist.
Vi.


7

Ruby, 29 [bezpieczny]

Próbuję zobaczyć, jak krótko mogę dostać się do Ruby bez pękania.

Kod

paper view
otool
$()**,.8<<=>

Wynik

[0][0, 3][0, 3, 6][0, 3, 6, 9][0, 3, 6, 9, 12][0, 3, 6, 9, 12, 16][0, 3, 6, 9, 12, 16, 20]

Oryginał

eval <<p*8 o=*o,$>.write(o) p

Wyjaśnienie

Pierwszy wiersz tworzy heredok, który zaczyna się w następnym wierszu i jest ograniczony przez końcowy p, a następnie łączy wynikowy ciąg 8 razy. Ponieważ kończy się na nowej linii, skutecznie tworzy pętlę. Zapętlony kod przypisuje tablicę do zmiennej o, składającej się z elementów w o.to_a(za pomocą *skrótu), a następnie wyniku $<.write(o), który konwertuje ona ciąg, drukuje go do STDOUT i zwraca liczbę wydrukowanych bajtów. Zmienna przypisywana po raz pierwszy służy nildo oceny prawej strony, a więc przy pierwszym uruchomieniu*o jest puste i zapisuje dane wyjściowe nic i zwraca 0. Każda kolejna runda wyprowadza tablicę danych wyjściowych z poprzednich rundy. Użycie heredoc rozdzielonego literą p tworzy metody wabienia dla danych wyjściowych, w zakodowanych znakach, które nie będą działać, ponieważ potrzebujesz liczby bajtów.p a$><<


6

PHP, rozmiar 49 [ Pęknięty przez Martina Büttnera ]

Kod

sub(print2w, $+expect+$+one+$+str+$+in=$@~main$);

Wynik

{main}

Czy miałbyś coś przeciwko ujawnieniu, z którą wersją PHP to przetestowałeś?
Martin Ender,

@ MartinBüttner Nie podam dokładnego zakresu, ale wszystko od wersji 5.3.0 będzie miało poprawny wynik.
bwoebi

3
Pęknięty. Zajęło mi to tylko ... 4 godziny ...
Martin Ender

@ MartinBüttner wow, gratulacje! Nie spodziewałam się, że się nie poddasz. :-)
bwoebi



6

Haskell, 100 znaków (nieprawidłowy, wyjście zbyt długie)

Kod

//Sup
tl=[]
while(syn==(+j)) tl+=b.a();
//(: #jquery :)\\
$("#jquery").on("click", j=>alert(j==m))

Wynik:

"\er\\e\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\"\\\\\\\\\\\\\"\\\\\\\


Oryginał

(#)=(>);(//)=(++)
l=j.show
main=putStr.l.l$l"eer"
j[]="\\"
j(y:u)=let(q,c)=break(#y)u in y:j c//j q

5
Przez chwilę myślałem, że czytam pytanie „Ewolucja Hello World” .
Vi.

1
@ Vi tak, ale myślę, że odległość Levenshteina jest nieco większa niż 7 w tym poście.
Zaq

1
Dane wyjściowe są dłuższe niż 100 znaków
Lynn,

1
@Zaq: ograniczenie rozmiaru nie dotyczy rozmiaru kodu, lecz wyjścia!
Lynn

1
Huh I zgadłem, że coś zrobiłeś fix show. Zdecydowanie nie do
pokonania

6

J, 22 bajty

Kod

!%()1348:::bbceehorvxx

Wyjście (97 znaków)

1226317306651180983274420265228191056569220222873505571155987454033425908908110103433163350999040

Spodziewam się, że będzie to praktycznie niemożliwe ...


6

CJam, 32 bajty ( pęknięty )

Kodowane źródło

"Beware the Jabberwock, my son!"

Wynik

4074552392882954617076720538102062920

2
Hm, skąd pomysł na użycie cytatu jako zakodowanego kodu CJam. ;)
Martin Ender


@ MartinBüttner: To wiersz wiersza, a nie cytat z filmu. Zupełnie inaczej!
Dennis,

@Dennis Czekaj, mój też nie był z filmu. (Nie do końca z wiersza .: D)
Martin Ender


5

TinyMUSH 3.1 , 20

Jajecznica:

(#ret,#3!#+#2i\2#,@)

Wynik:

3210

6
Jak mamy to uruchomić? Gdzie jest odniesienie do języka? (Link tutaj nie pomaga).
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨d̷̰̀ĥ̷̳

3
@ n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨d̷̰̀h Możesz uruchomić ten kod, łącząc się z MUSH z odpowiednią wersją TinyMUSH. Przeglądaj tutaj, aby znaleźć taki, w którym typ serwera to „MUSH”, lub pobierz źródło serwera stąd i sam uruchom MUSH.
Muqo,

5

Python 3, długość 110 [ cracked przez grc ]

Jajecznica ( \noznacza nowy wiersz)

\n\n\n   ""((((())))),.......9::;===IOS[]__addeeegghiiiiiiiiijllmmnnoooooooppprrrrsssssssssstttttttttttuuuuuvwyyy

Wynik:

The better is Flat dense. break never of be do at never. If bad it honking

Oto kolejna zabawna - nie jest trudna, ale po prostu coś niezwykłego i zagadkowego. :)


Wyjaśnienie

Losowo wyglądające słowa pochodzą z Zen of Python (PEP 20), który jest automatycznie drukowany przez pisankę import this. Fragment ten jest co każde dziewiąte słowo, jak sugeruje 9::[]teraźniejszość.
Aby wyodrębnić co dziewiąte słowo bez automatycznego drukowania fragmentu podczas importowania, przekierowujemy sys.stdoutna StringIO().



Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.