LoslegenKostenlos loslegen

Offene Dreiecke finden

Kommen wir nun zum Finden offener Dreiecke! Denk daran: Sie sind die Grundlage von Freundschaftsempfehlungen. Wenn „A“ „B“ kennt und „A“ „C“ kennt, ist es wahrscheinlich, dass „B“ auch „C“ kennt.

Diese Übung ist Teil des Kurses

Einstieg in die Netzwerkanalyse mit Python

Kurs anzeigen

Anleitung zur Übung

  • Schreib eine Funktion node_in_open_triangle() mit zwei Parametern – G und n –, die erkennt, ob ein Knoten zusammen mit seinen Nachbarn in einem offenen Dreieck liegt.
    • Iteriere in der for-Schleife über alle möglichen Dreiecksbeziehungs-Kombinationen.
    • Wenn die Knoten n1 und n2 keine Kante zwischen sich haben, setze in_open_triangle auf True, brich aus der if-Abfrage aus und gib in_open_triangle zurück.
  • Verwende diese Funktion, um die Anzahl der offenen Dreiecke in T zu zählen.
    • Iteriere in der for-Schleife über alle Knoten in T.
    • Befindet sich der aktuelle Knoten n in einem offenen Dreieck, erhöhe num_open_triangles.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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)
Code bearbeiten und ausführen