Math 可能的路径数

Math 可能的路径数,math,graph,path,Math,Graph,Path,为什么在下图中有2^k条从S到T的可能路径。 谁能解释一下。 注:图中所有方向均为从左至右 对于每一对平行路径,一次只能选择其中一条路径。 因此,存在这样的并行路径对。因此,组合的总数是:2*2*2…k倍=2k在计数配置中,有时找到一种方法对配置进行编码,然后对可能的代码进行计数是有帮助的。只要编码的对象和代码之间存在1-1对应关系,这种方法就有效 在这种情况下,您可以在每个阶段使用顶部分支或底部分支。如果相应的路径在该阶段采用顶部分支,则在给定位位置使用0将路径编码为k位二进制数,否则使用1。

为什么在下图中有2^k条从S到T的可能路径。 谁能解释一下。 注:图中所有方向均为从左至右


对于每一对平行路径,一次只能选择其中一条路径。

因此,存在这样的并行路径对。
因此,组合的总数是:2*2*2…k倍=2k
在计数配置中,有时找到一种方法对配置进行编码,然后对可能的代码进行计数是有帮助的。只要编码的对象和代码之间存在1-1对应关系,这种方法就有效

在这种情况下,您可以在每个阶段使用顶部分支或底部分支。如果相应的路径在该阶段采用顶部分支,则在给定位位置使用0将路径编码为k位二进制数,否则使用1。这显然是1-1对应关系,因此这类路径的数量是k位数字的数量,即2^k(计算k位数字的数量基本上是同一个问题,因此这不是一个确切的证明,但如果您已经熟悉k位数字的工作原理,这可能会揭示路径问题)

例如(k=4时):

(如果您想使用它,则由以下Python 3脚本生成:)


这怎么会是一个编程问题?这是干什么用的?如果是作业,请贴上这样的标签。考虑每个节点可以使用的路径数。增加一个节点对可能的路径数有什么影响?我投票将这个问题作为离题题来结束,因为这不是一个编程问题,提问者也没有表现出自己的工作。
path code num
vvvv 0000 0
vvv^ 0001 1
vv^v 0010 2
vv^^ 0011 3
v^vv 0100 4
v^v^ 0101 5
v^^v 0110 6
v^^^ 0111 7
^vvv 1000 8
^vv^ 1001 9
^v^v 1010 10
^v^^ 1011 11
^^vv 1100 12
^^v^ 1101 13
^^^v 1110 14
^^^^ 1111 15
def pathCodes(k):
    print('path code num')
    for n in range(2**k):
        b = bin(n)[2:]
        b = ('0'*(k-len(b))) + b
        s = b.replace('0','v')
        s = s.replace('1','^')
        print(s,b,n)