-2

我是 Python 新手,已经有一段时间没有编程了,非常感谢您的帮助。

我必须在给定的数据结构中查找所有 n 长度的循环-我目前正在使用列表,但也许 dict 可以完成工作-

第一行中的每个元素直接映射到它下面的元素,如果重复使用映射导致返回初始值,则形成一个循环。假设我有:

A=[[2,3,4,5,6,7,8,9,10],
   [6,3,6,1,8,8,4,1,9]]

那么循环是(3)(4,6,8)

或者

A=[[2,  3, 4, 5, 6,  7,  8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
   [17, 7, 7, 3, 12, 18, 1, 8, 20, 1,  6,  13, 4,  17, 4,  13, 5,  10]]

循环在哪里(3,7,18,5)(6,12)并且(13)

我真的被困住了,所以提前感谢您的帮助。

4

1 回答 1

0

多谢你们!它是如此简单,我只是看不到它......将A中的元素排列成2列(成对A [0] [i],A [1] [i])并将其提供给networkx对象,例如

>>>G = nx.DiGraph(A)
>>>list(nx.simple_cycles(G))
>>>[[12, 6], [5, 3, 7, 18], [13]]

产生输出。

于 2015-04-08T16:25:34.727 回答