Aan de slagGa gratis aan de slag

Knopen vinden die deel uitmaken van driehoeken

NetworkX biedt een API om het aantal driehoeken te tellen waarbij elke knoop betrokken is: nx.triangles(G). Deze geeft een dictionary terug met knopen als sleutels en het aantal driehoeken als waarden. Jouw taak in deze oefening is om de eerder gedefinieerde functie aan te passen zodat alle knopen worden opgehaald die een driehoeksrelatie hebben met een opgegeven knoop.

Deze oefening maakt deel uit van de cursus

Introductie tot netwerkanalyse in Python

Cursus bekijken

Oefeninstructies

  • Schrijf een functie nodes_in_triangle() met twee parameters — G en n — die alle knopen identificeert met een driehoeksrelatie met een opgegeven knoop.
    • Itereer in de for-lus over alle mogelijke combinaties voor driehoeksrelaties.
    • Controleer of de knopen n1 en n2 een verbinding tussen zich hebben. Zo ja, voeg beide knopen toe aan de set triangle_nodes.
  • Gebruik je functie in een assert-statement om te controleren dat het aantal knopen met een driehoeksrelatie met knoop 1 van graaf T gelijk is aan 35.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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(____(____, ____)) == ____
Code bewerken en uitvoeren