LoslegenKostenlos starten

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

<Kurs>Einstieg in die Netzwerkanalyse mit Python</Kurs>
Kurs ansehen

Übungsanweisungen

  • 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 praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

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