2
一个人如何有效地产生所有相等数量的0和1的二进制序列?
甲二进制序列长度的只是一个有序序列使得每个要么是或。为了生成所有这样的二进制序列,可以按以下方式使用明显的二进制树结构:根为“空”,但是每个左子级对应于现有字符串的附加值,每个右子级对应于。现在,每个二进制序列只是一条长度为的路径,该路径从根开始并在叶处终止。x 1,… ,x n x j 0 1 0 1 n + 1ññnX1个,… ,xñX1个,…,Xñx_1,\ldots,x_nXĴXĴx_j0001个1个10001个1个1n + 1ñ+1个n+1 这是我的问题: 如果我们只想生成所有长度二进制字符串,它们恰好具有零和,我们可以做得更好吗?n n2 n2ñ2nññnññn 所谓“我们可以做得更好”,是指我们应该比笨拙的算法具有更低的复杂度,后者首先在上面构建整个树,然后尝试找到具有相等数量“左”和“右”边的路径。