Advertisement
istomina_sofia

питон лаба4

Dec 20th, 2022
1,235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.39 KB | None | 0 0
  1. graf_1 = []
  2. n = int(input("Введите размер графа: "))
  3. print("Составим матрицу смежности графа ")
  4. print("Для этого через пробел, для каждого узла графа, вводите список путей до других узлов")
  5. print("Правила ввода: 0 - ребра нет, ДругоеЧисло - длина ребра от этого узла до узла под номером 'ввода числа'")
  6. for i in range(n):
  7.     graf_1.append(list(map(int, input(f"Узел {i+1}: ").split())))
  8. print("Таким образом матрица смежности графа выглядит следующим образом: ")
  9. for i in graf_1:
  10.     print(*i)
  11. print("P.S. Проверки ввода нет, вводите корректные данные с первого раза, пожалуйста")
  12. graf_2 = []
  13. for i in range(len(graf_1)):
  14.     graf_2.append([])
  15.     for j in range(len(graf_1)):
  16.         if graf_1[i][j] < 3:
  17.             graf_2[i].append(graf_1[i][j])
  18.         else:
  19.             graf_2[i].append(0)
  20. print("Дополнительный граф выглядит следующим образом: ")
  21. for i in graf_2:
  22.     print(*i)
  23.  
  24.  
  25. def deleter(num, graf_2 = graf_2):
  26.     graf = []
  27.     for i in range(len(graf_2)):
  28.         graf.append([])
  29.         for j in range(len(graf_2[i])):
  30.             graf[i].append(graf_2[i][j])
  31.  
  32.  
  33.     graf.pop(num-1)
  34.  
  35.     for i in range(len(graf)):
  36.         graf[i].pop(num-1)
  37.  
  38.     return(graf)
  39.  
  40.  
  41.  
  42. def checker(graf):
  43.     help1 = []
  44.     help2 = []
  45.     for i in range(len(graf[0])):
  46.         if graf[0][i] > 0:
  47.             help1.append(1)
  48.     sum1 = sum(help1)
  49.     for i in range(len(graf)):
  50.         for j in range(len(graf[i])):
  51.             if graf[i][j] > 0:
  52.                 help2.append(1)
  53.         if sum(help2) != sum1:
  54.             return(False)
  55.         else:
  56.             help2 = []
  57.     return(True)
  58.  
  59.    
  60.  
  61.  
  62. counter = 0
  63. for i in range(1, n+1):
  64.     if checker(deleter(i, graf_2)) == True:
  65.         print(f"Узел под номером {i} можно удалить, тогда новый граф будет выглядеть следующим образом: ")
  66.         for j in deleter(i, graf_2):
  67.             print(*j)
  68.         counter+=1
  69.  
  70. if counter == 0: print("Нет узлов, которые можно удалить,")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement