Wprowadzenie
Załóżmy przez chwilę, że żmije i klif są tylko dwa kroki, a nie trzy.
o
---
Hsss! |
';;' ___ /_\ ___ _
|
Niestety jesteś uwięzionym sadystycznym oprawcą. Za każdym zakrętem musisz zrobić krok w lewo lub w prawo. Jeśli tego nie zrobisz, natychmiast zastrzelą cię. Możesz wcześniej zaplanować swoje kroki, ale kiedy zrobisz pierwszy krok, nie możesz zmienić swojego planu. (I nie ma sensu; zastrzelą cię.)
Nagle przychodzi na myśl jasny pomysł ...
Ach! Mogę tylko na przemian kroczyć w prawo i lewo! Krok w prawo, krok w lewo, krok w prawo, krok w lewo i tak dalej ...
Ah ah ah, nie tak szybko. Jak powiedziałem, oprawca jest sadystyczny. Mogą wybrać, czy podejmiesz każdy krok, czy co drugi krok, czy co trzeci krok i tak dalej. Więc jeśli naiwnie wybierzesz sekwencję RLRLRL...
, mogą zmusić cię do zrobienia co drugiego kroku, który zaczyna się od LL
. O o! Zostałeś ugryziony przez żmije! Ciemność otacza cię i wszystko inne znika ...
Właściwie nie, jeszcze nie jesteś martwy. Nadal musisz wymyślić swój plan. Po kilku minutach zastanowienia zdajesz sobie sprawę, że jesteś skazany. Nie ma możliwości zaplanowania szeregu kroków, które zagwarantują ci przetrwanie. Najlepsze, co możesz wymyślić, to RLLRLRRLLRR
. 1 Jedenaście bezpiecznych kroków i nie więcej. Jeśli dwunasty krok jest R
, to oprawca zmusi cię do zrobienia każdego kroku, a następnie trzy ostatnie kroki wyślą cię z klifu. Jeśli dwunasty krok jest L
, to oprawca zmusi cię do zrobienia co trzeciego kroku ( LRLL
), co wprawia cię w stan lęgowy żmii i ich śmiertelnych ugryzień.
Ty wybierasz R
jako dwunasty krok, mając nadzieję na jak najdłuższe opóźnienie śmierci. Gdy w uszach ryczy wiatr, zastanawiasz się ...
Co jeśli miałbym trzy kroki?
Alert spoilera!
Nadal byś umarł. Jak się okazuje, bez względu na to, ile kroków masz, będzie taki moment, w którym bez względu na dokonany przez ciebie wybór, oprawca może wykonać sekwencję kroków, aby upewnić się, że spotkasz swój śmiertelny los. 2 Jednakże, gdy żmije i klif znajdują się w odległości trzech kroków, możesz wykonać łącznie 1160 bezpiecznych kroków, a gdy są cztery kroki dalej, jest co najmniej 13 000 bezpiecznych kroków! 3)
Wyzwanie
Biorąc pod uwagę jedną liczbę całkowitą n < 13000
, wypisz sekwencję n
bezpiecznych kroków, zakładając, że klif i żmije znajdują się w odległości czterech kroków.
Zasady
- Może być pełnym programem lub funkcją.
- Dane wejściowe mogą być pobierane przez STDIN lub równoważne, lub jako argument funkcji.
- Wyjście musi mieć dwa różne znaki (które mogą być
+/-
,R/L
,1/0
, itd.). - Wszelkie białe znaki na wydruku nie mają znaczenia.
- Kodowanie rozwiązania jest niedozwolone. To by trywializowało to wyzwanie.
- Twój program powinien (teoretycznie) zakończyć się w przyzwoitym czasie. Jak w,
n=13000
może to potrwać miesiąc, ale nie powinno to zająć tysiąca lat lub więcej. Oznacza to, że nie ma brutalnej siły. (Cóż, przynajmniej spróbuj tego uniknąć). - Bonus życiowy: zapewnij szereg
2000
bezpiecznych kroków. Jeśli to zrobisz, oprawca będzie pod wrażeniem twojej wytrwałości, wytrwałości i przewidywania, że pozwolą ci żyć. Ten jeden raz. (Potraktuj tę sekwencję jako liczbę binarną i podaj dziesiętny ekwiwalent do weryfikacji. Ma to na celu nagradzanie odpowiedzi, które kończą się szybko, ponieważ odpowiedzi mogą trwać bardzo długo). - Wynik: bajty , chyba że kwalifikujesz się do premii - pomnóż przez 0,75 .
1 Istnieje dobre wyjaśnienie tego problemu i „rozwiązania” jednej z gwiazd Numberphile, Jamesa Grime'a, na jego kanale na YouTube: https://www.youtube.com/watch?v=pFHsrCNtJu4 .
2 Ta 80-letnia hipoteza, znana jako problem rozbieżności Erdosa, bardzo niedawno udowodnił Terence Tao. Oto bardzo fajny artykuł na temat magazynu Quanta na ten temat: https://www.quantamagazine.org/20151001-tao-erdos-discrepancy-problem/ .
3 Źródło: Atak SAT na hipotezę rozbieżności Erdosa , autorstwa Borisa Koneva i Aleksieja Lisicy. Źródło: http://arxiv.org/pdf/1402.2184v2.pdf .
n=13000
w ciągu roku, może dziesięciu. Czy czekasz miesiąc n=2000
? Prawdopodobnie nie. A jeśli tak , to i tak zasługujesz na bonus.
n=13000
, czy pierwsze 2000 instrukcji wygra bonus? Wydaje się bezcelowe, więc prawdopodobnie miałeś na myśli coś innego?