给定一个无向图,你如何找到所有长度为 n 的循环(如果可能,使用 networkx)。因此,输入将是 Graph 和 n,该函数将返回该长度的所有循环。
您可以使用networkx.cycle_basis。
>>> G = networkx.Graph()
>>> networkx.add_cycle(G, [0, 1, 2, 3])
>>> networkx.add_cycle(G, [0, 3, 4, 5])
>>> print(networkx.cycle_basis(G))
[[3, 4, 5, 0], [1, 2, 3, 0]]
>>> print(networkx.cycle_basis(G, root = 2))
[[1, 2, 3, 0]]
Run Code Online (Sandbox Code Playgroud)
然后,您可以根据需要检查每个列表的长度。