Обнаружение повторяющейся последовательности целых чисел в большом списке питонов - PullRequest
0 голосов
/ 08 мая 2018

Я обнаруживаю циклы на графике с помощью функции, которую я сделал.

for repeat in xrange(1000):
    spath = bfs_spaths(edgemap, source, n, nodevals)

Находит наименьший цикл в графе из исходного узла на основе текущих весов ребер (которые хранятся в карте ребер).

На основании результатов я затем редактирую веса на графике, а затем снова нахожу цикл (отсюда 1000 повторений).

В какой-то момент во время моего обнаружения циклов алгоритм застревает в цикле обнаружения той же последовательности циклов. Последовательность может быть, скажем, одними и теми же 5 циклами снова и снова. Или это может быть 100 разных циклов снова и снова. Но с некоторого момента будет повторяться только эта последовательность.

Мне нравится это поведение, и я не хочу его менять. Я, однако, хочу обнаружить последовательность. Я могу немного снизить уровень сложности, сохранив длину каждого цикла в списке:

lenpath = list()
lenpath.append(len(spath))

Теперь все, что нам нужно сделать, это обнаружить повторяющуюся последовательность целых чисел в этом списке. Но когда последовательность начинает повторяться, в списке есть переменная, как и размер последовательности.

Понятия не имею, как это сделать. Любые рекомендации? Спасибо.

...