Поиск циклов между числами в списке наборовPython

Программы на Python
Ответить
Anonymous
 Поиск циклов между числами в списке наборов

Сообщение Anonymous »

Данный список наборов типа:

Код: Выделить всё

sets=[{1,2},{2,3},{1,3}]
продукт (1,2,3) будет сгенерирован дважды в itertools.product(*sets), поскольку литералы (1,2,3 ) и (2,3,1), потому что есть цикл. Если цикла нет, то не будет и дублирования, хотя между наборами может быть много общего.
Петля существует, когда вы можете перемещаться от одного числа в наборе к другому числу в наборе. набора, затем на тот же номер в другом наборе и вернитесь к исходному номеру, например. 1>2-->2>3-->3>1-->1, где '-->' указывает перемещение между наборами, а '>' указывает на перемещение внутри набора. Самый маленький цикл будет включать пару чисел, общих для двух наборов, например. a>b-->b>a-->a.
Какой тип графовой структуры я мог бы использовать для представления этого? Я попытался представить каждый набор как узел, а затем указать, какие наборы с какими связаны, но это неправильно, поскольку для [{1,2},{1,3},{1,4}], между всеми множествами есть связь (общая единица), но петли нет. Я также пытался присвоить букву каждому числу в каждом наборе, но это тоже кажется неправильным, поскольку тогда я не знаю, как отличить циклы внутри набора.

Подробнее здесь: https://stackoverflow.com/questions/793 ... st-of-sets
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»