Napisz program lub funkcję, która przyjmuje dodatnią liczbę całkowitą N (za pomocą stdin / wiersza poleceń / funkcji arg) i wypisuje lub zwraca ciąg reprezentujący dwuwymiarowe losowe przejście o długości N kroków, narysowane ukośnikami: /
\
(plus spacje i nowe linie dla odstępów).
Spacer losowy 2D rozpoczyna się u źródła nieskończonej sieci całkowitej . Następnie kilkakrotnie N razy kierunek główny (w górę, w dół, w lewo, w prawo) jest losowo wybierany równomiernie, a piechur porusza się o jedną jednostkę w tym kierunku. Otrzymana ścieżka jest losowym spacerem.
Oto losowy spacer dla N = 6. Zwróć uwagę, że wraca on z powrotem po osiągnięciu (-1, 3).
Aby narysować to ukośnikami, musimy zasadniczo obrócić całość o 45 ° zgodnie z ruchem wskazówek zegara. Osie oraz punkty początkowy i końcowy nie są rysowane w wersji ukośnej.
/
\
\
/\
Bardziej złożony spacer taki jak ten (N = 20, choć nie ma sposobu, aby powiedzieć):
Byłby to:
/
/\/ /\
\/\/
/\/
\/
Twój program musi wygenerować tego typu ukośne wersje losowych spacerów. Ci muszą losowo wybrać każdy nowy kierunek Spacer trwa, więc każda prowadzenie programu dla pewnego N będzie prawie na pewno produkować inny spacer. (Pseudolosowość jest w porządku.)
Nigdy nie powinny być żadnych pustych linii powyżej lub poniżej najniższych i najwyższych ukośników (z wyjątkiem jednej opcjonalnej nowej linii końcowej), i nigdy nie powinny być puste kolumny odstępów przed lub po skrajnych lewych i skrajnych prawych ukośnikach.
Tak więc dla N = 1 wynik zawsze /
lub \
, ale nigdy coś takiego:
/
Końcowe spacje są dozwolone, o ile nie przechodzą obok kolumny skrajnego prawego ukośnika.
Zgłoszenie z najmniejszą liczbą bajtów wygrywa. Oto przydatny licznik bajtów.