Kom igångKom igång gratis

Hitta öppna trianglar

Nu är det dags att hitta öppna trianglar! Kom ihåg att de utgör grunden för vänskapsrekommendationssystem – om "A" känner "B" och "A" känner "C", är det troligt att "B" också känner "C".

Den här övningen är en del av kursen

Introduktion till nätverksanalys i Python

Visa kurs

Övningsinstruktioner

  • Skriv en funktion node_in_open_triangle() med två parametrar – G och n – som avgör om en nod ingår i en öppen triangel med sina grannar.
    • I for-loopen, iterera över alla möjliga kombinationer av triangelrelationer.
    • Om noderna n1 och n2 inte har en kant mellan sig, sätt in_open_triangle till True, bryt ur if-satsen och returnera in_open_triangle.
  • Använd funktionen för att räkna antalet öppna trianglar som finns i T.
    • I for-loopen, iterera över alla noder i T.
    • Om den aktuella noden n ingår i en öppen triangel, öka num_open_triangles med ett.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

from itertools import combinations

# Define node_in_open_triangle()
def node_in_open_triangle(G, n):
    """
    Checks whether pairs of neighbors of node `n` in graph `G` are in an 'open triangle' relationship with node `n`.
    """
    in_open_triangle = False

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

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

            in_open_triangle = ____

            break

    return ____

# Compute the number of open triangles in T
num_open_triangles = 0

# Iterate over all the nodes in T
for n in ____:

    # Check if the current node is in an open triangle
    if ____:

        # Increment num_open_triangles
        ____ += 1

print(num_open_triangles)
Redigera och kör kod