Двоичная последовательность длины просто упорядоченная последовательность , так что каждый является либо или . Чтобы сгенерировать все такие двоичные последовательности, можно использовать очевидную структуру двоичного дерева следующим образом: корень «пустой», но каждый левый дочерний элемент соответствует добавлению к существующей строке, а каждый правый дочерний элемент - , Теперь каждая двоичная последовательность - это просто путь длиной начинающийся с корня и заканчивающийся на листе.
Вот мой вопрос:
Можем ли мы добиться большего успеха, если хотим создать только двоичные строки длиной которые имеют ровно нулей и единиц?
Под «мы можем сделать лучше» я имею в виду, что мы должны иметь меньшую сложность, чем глупый алгоритм, который сначала строит все дерево выше, а затем пытается найти те пути с равным количеством «левого» и «правого» ребер.