Zacznij terazZacznij za darmo

Znajdowanie węzłów tworzących trójkąty

NetworkX udostępnia API do zliczania trójkątów, w których uczestniczy każdy węzeł: nx.triangles(G). Funkcja zwraca słownik, w którym kluczami są węzły, a wartościami – liczba trójkątów. Twoim zadaniem w tym ćwiczeniu jest zmodyfikowanie wcześniej zdefiniowanej funkcji tak, aby wyodrębniała wszystkie węzły powiązane trójkątem z danym węzłem.

To ćwiczenie jest częścią kursu

Wprowadzenie do analizy sieci w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Napisz funkcję nodes_in_triangle() przyjmującą dwa parametry – G i n – która znajdzie wszystkie węzły powiązane trójkątem z danym węzłem.
    • W pętli for iteruj po wszystkich możliwych kombinacjach tworzących trójkąt.
    • Sprawdź, czy między węzłami n1 a n2 istnieje krawędź. Jeśli tak, dodaj oba węzły do zbioru triangle_nodes.
  • Użyj swojej funkcji w instrukcji assert, aby sprawdzić, czy liczba węzłów powiązanych trójkątem z węzłem 1 grafu T jest równa 35.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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(____(____, ____)) == ____
Edytuj i uruchom kod