Напишіть програму або функцію, яка приймає додатне ціле число N (через stdin / командний рядок / функцію arg) і друкує або повертає рядкове зображення двовимірного випадкового ходу довжиною N кроків, виведених з косих рядків : /
\
(плюс пробіли та нові рядки для інтервалу).
2D-випадкова хода починається від початку нескінченної цілої решітки . Потім N разів повторно кардинальний напрямок (вгору, вниз, вліво, вправо) вибирається рівномірно рівномірно, і ходок рухається однією одиницею в тому напрямку. Отриманий шлях - випадкова прогулянка.
Ось випадкова прогулянка для N = 6. Зауважте, що вона рухається назад, коли досягає (-1, 3).
Для того, щоб намалювати це за допомогою нахилів, нам потрібно повернути всю річ на 45 ° за годинниковою стрілкою. Осі, початкова та кінцева точки не накреслені у косому варіанті.
/
\
\
/\
Більш складна прогулянка на зразок цієї (N = 20, хоча немає можливості сказати):
Це стане таким:
/
/\/ /\
\/\/
/\/
\/
Вашій програмі необхідно генерувати такі типи косої версії випадкових прогулянок. Ви повинні випадковим чином вибрати кожен новий напрямок, яким рухається прогулянка, тому кожне виконання програми для певного N майже напевно призведе до різної прогулянки. (Псевдовипадковість прекрасна.)
Ніколи не повинно бути порожніх рядків над або під найнижчою та найвищою косою рисою (за винятком однієї необов’язкової кінцевої нової лінії), і ніколи не повинно бути порожніх стовпців пробілів до або після нахилу лівого та правого кута.
Отже, для N = 1 вихід завжди /
або \
, але ніколи не такий, як:
/
Пробіли дозволені до тих пір, поки вони не проходять повз стовпця правої косої риси.
Виграє подання з найменшими байтами. Ось зручний байт-лічильник.