Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def rotate_matric(matric, m_size):
- new_matric = []
- for i in range(0, m_size):
- l = []
- for j in range(0, m_size):
- l.append(matric[j][i])
- new_matric.append(l)
- return new_matric
- def opposite_finder(edge_1, edge_2, num):
- if edge_1[num] == edge_2[num]:
- return True
- for i in range(0, len(edge_1)):
- if edge_1[i] == edge_2[num] and edge_2[i] == edge_1[num]:
- edge_1.pop(i)
- edge_2.pop(i)
- return True
- return False
- def string_builder(edge_1, edge_2, is_opposite, m_size):
- result = []
- for i in range(0, m_size):
- result.append(0)
- result[edge_1] = 1
- if is_opposite:
- result[edge_2] = 1
- else:
- result[edge_2] = -1
- return result
- def matric_printer(matric, size):
- keys = list(matric.keys())
- first_string = "\t"
- for key in keys:
- first_string += key + "\t"
- print(first_string)
- for n_string in range(0, size):
- string = str(n_string + 1) + "\t"
- for key in keys:
- string += str(matric[key][n_string]) + "\t"
- print(string)
- m_size = int(input("Размер матрицы: "))
- matric = []
- for i in range(0, m_size):
- converted_string = []
- for num in input("Введите " + str(i + 1) + " срочку матрицы: ").split(" "):
- converted_string.append(int(num))
- matric.append(converted_string)
- matric = rotate_matric(matric, m_size)
- edges = [[], []]
- for i_string in range(0, m_size):
- for i_val in range(0, m_size):
- if matric[i_string][i_val] == 1:
- edges[0].append(i_string)
- edges[1].append(i_val)
- edges_strings = {}
- edge = 0
- while len(edges[0]) > edge:
- opposite_finder_result = opposite_finder(edges[0], edges[1], edge)
- edges_strings[str(edges[0][edge] + 1) + "-" + str(edges[1][edge] + 1)] = string_builder(edges[0][edge], edges[1][edge], opposite_finder_result, m_size)
- edge+=1
- matric_printer(edges_strings, m_size)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement