解答树:
所谓解答树,其实和dfs、递归有着很大的联系的。可以说dfs就是基于一个解答树来实现的。但是什么是解答树呢?其实可以类比生成所有全排列的这样一个过程:完成一件事情需要n个步骤,这n个步骤的先后顺序并不会对方案本身产生影响,这样我们如果建立一个根节点,那么第一个步骤就有n种选择,即根节点有n个儿子,同样对于第二个步骤,我们就有n-1个步骤,依次类推,我们会发现,解答树有n+1层。
那么问题来了,n+1层的完全解答树有多少个节点呢?
为了表达额方便,我们将根节点视为第0层,而根据上面的规律,对于第i层,我们知道其节点是n(n-1)…(n-k+1) = n!/k!,因此我们容易列出[1,n]层节点的和,即如下表达式。
∑n!/k!,k∈[1,n].
结合泰勒级数,我们可将其化简为n!e,值得注意的是,解答树的叶子节点共有n!,而最终结果也仅仅只有n!e个,可见解答树的节点绝大部分是由叶节点及其父节点提供的。
时间: 2024-10-12 07:34:22