@lemonlimelike

Как представить из матрицы инцидентности реберный граф?

К примеру, имеется граф в алгебраической форме: (1,2),(1,3),(2,3). Я написал небольшой код для нахождения матрицы инцидентности для этого графа. Теперь мне бы хотелось представить из матрицы инцидентности реберный граф, то есть врешины становятся ребрами, а ребры становятся вершинами. Как бы это реализовать?

Вот мой код, который показывает матрицу инцидентности:

if __name__ == '__main__':
    count_reber = int(input('Введите кол-во ребер: '))
    count_vershin = int(input('Введите кол-во вершин: '))

    list_reber = []

    for i in range(count_reber):
        rebro = str(input(f'Введите ребро {i+1}, пример 0,0: ')).split(',')
        list_reber.append([int(rebro[0]),int(rebro[1])])

    for i in range(count_reber):
        print(f'({list_reber[i][0]},{list_reber[i][1]})')

    matrix = [[0] * count_vershin for i in range(count_reber)]

    for i in range(count_reber):
        for j in range(count_vershin):
            # print(type(list_reber[i][0]),type(list_reber[i][1]),type(j))
            if list_reber[i][0] == j+1 or list_reber[i][1] == j+1:
                matrix[i][j] = 1
            else:
                matrix[i][j] = 0

    print(matrix)
    for i in range(count_reber):
        for j in range(count_vershin):
            print(matrix[i][j], end=' ')
        print()


Ввожу так:

5f67328051318778507366.png
  • Вопрос задан
  • 192 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы