Форум сайта python.su
Нужно написать функцию:На вход принимает матрицу весов W графа (список списков). На выходе матрица смежности А графа без учета весов ребер (список списков).
Использовать сгенерированный граф
Вот генератор графов:
import random import pprint def graph_generator(n, mean_degree, max_weight): if mean_degree < 2 * (n - 1) / n: mean_degree = 2 * (n - 1) / n if mean_degree > n - 1: mean_degree = (n - 1) num_of_edges = int(mean_degree * n / 2) W = [] for i in range(n): W.append(['-'] * n) W[i][i] = 0 stack = [] for i in range(n): stack.append(i) random.shuffle(stack) while stack: first = stack.pop() if stack: second = random.choice(stack) W[first][second] = W[second][first] = random.randint(1, max_weight) edges_not_tree = num_of_edges - (n - 1) for _ in range(edges_not_tree): first = random.randint(0, n - 1) second = random.randint(0, n - 1) W[first][second] = W[second][first] = random.randint(1, max_weight) return W
Офлайн