Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 11, 2021 21:15:28

danilvar
Зарегистрирован: 2021-04-11
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Графы

Нужно написать функцию:На вход принимает матрицу весов 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

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version