Začněte nyníZačněte zdarma

Hledání otevřených trojúhelníků

Teď se zaměříme na hledání otevřených trojúhelníků! Připomeň si, že tvoří základ systémů pro doporučování přátel: pokud „A" zná „B" a „A" zná „C", je pravděpodobné, že „B" zná také „C".

Toto cvičení je součástí kurzu

Úvod do analýzy sítí v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Napiš funkci node_in_open_triangle() se dvěma parametry – G a n –, která zjistí, jestli se daný uzel nachází v otevřeném trojúhelníku se svými sousedy.
    • V cyklu for iteruj přes všechny možné kombinace trojúhelníkových vztahů.
    • Pokud mezi uzly n1 a n2 neexistuje hrana, nastav in_open_triangle na True, ukonči if blok a vrať hodnotu in_open_triangle.
  • Pomocí této funkce spočítej, kolik otevřených trojúhelníků v grafu T existuje.
    • V cyklu for iteruj přes všechny uzly v T.
    • Pokud se aktuální uzel n nachází v otevřeném trojúhelníku, zvyš hodnotu num_open_triangles o jedna.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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)
Upravit a spustit kód