ПочатиПочніть безкоштовно

Пошук вузлів, що входять до трикутників

NetworkX надає API для підрахунку кількості трикутників, у яких бере участь кожен вузол: nx.triangles(G). Воно повертає словник, де ключі — це вузли, а значення — кількість трикутників. Ваше завдання у цій вправі — змінити раніше визначену функцію так, щоб вона повертала всі вузли, які утворюють трикутний зв'язок із заданим вузлом.

Ця вправа є частиною курсу

Вступ до аналізу мереж у Python

Переглянути курс

Інструкції до вправи

  • Напишіть функцію nodes_in_triangle() з двома параметрами — G і n — яка знаходить усі вузли, що утворюють трикутний зв'язок із заданим вузлом.
    • У циклі for переберіть усі можливі комбінації для трикутних зв'язків.
    • Перевірте, чи мають вузли n1 і n2 ребро між собою. Якщо так, додайте обидва вузли до множини triangle_nodes.
  • Використайте вашу функцію в операторі assert, щоб перевірити, що кількість вузлів, які утворюють трикутний зв'язок із вузлом 1 графа T, дорівнює 35.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

from itertools import combinations

# Write a function that identifies all nodes in a triangle relationship with a given node.
def nodes_in_triangle(G, n):
    """
    Returns the nodes in a graph `G` that are involved in a triangle relationship with the node `n`.
    """
    triangle_nodes = set([n])

    # Iterate over all possible triangle relationship combinations
    for n1, n2 in ____:

        # Check if n1 and n2 have an edge between them
        if ____:

            # Add n1 to triangle_nodes
            ____

            # Add n2 to triangle_nodes
            ____

    return triangle_nodes

# Write the assertion statement
assert len(____(____, ____)) == ____
Редагувати та запускати код