Учитывая положительное целое число N («виральность»), ваша программа должна создать ASCII-рисунок дерева с двумя ветвями длины N, идущими вниз и / или вправо от верхнего левого угла.
Направление, выбранное каждой ветвью после первой звездочки, может быть как вправо, так и вниз, и этот выбор должен быть сделан случайным образом 1 на каждом следующем шаге.
Например, если задано значение 5, результат может выглядеть следующим образом:
***
* ***
**
**
Две ветви могут касаться (находиться в соседних ячейках), но не перекрываться (находиться в одной и той же ячейке), поэтому не допускается следующее:
***
* *
*****
*
*
Примеры
Для ввода 1
единственно возможный вывод:
**
*
(Это будет присутствовать во всех допустимых выходных данных, так как если две ветви выберут один и тот же путь, они будут перекрываться.)
Возможные выходы для входа 3
включают в себя:
***
* *
**
**
***
*
*
Для ввода 7
:
****
* **
* **
*
***
*
Для ввода 10
:
****
* *
*********
*
*****
Это Код-гольф, поэтому самый короткий действительный ответ (в байтах) выигрывает.
1. Это должно быть равномерно случайным (то есть шанс 50/50 каждого направления), или настолько близко к равномерно случайным, насколько вы можете получить на обычном оборудовании.
0
s и 1
s вместо пробелов и звездочек?