Hledání uzlů zapojených do trojúhelníků
NetworkX nabízí API pro počítání trojúhelníků, do kterých je každý uzel zapojen: nx.triangles(G). Vrátí slovník, kde klíče jsou uzly a hodnoty jsou počty trojúhelníků. Tvým úkolem je upravit dříve definovanou funkci tak, aby extrahovala všechny uzly v trojúhelníkovém vztahu s daným uzlem.
Toto cvičení je součástí kurzu
Úvod do analýzy sítí v Pythonu
Pokyny k cvičení
- Napiš funkci
nodes_in_triangle()se dvěma parametry –Gan– která identifikuje všechny uzly v trojúhelníkovém vztahu s daným uzlem.- Ve smyčce
foriteruj přes všechny možné kombinace trojúhelníkových vztahů. - Zkontroluj, jestli mezi uzly
n1an2existuje hrana. Pokud ano, přidej oba uzly do množinytriangle_nodes.
- Ve smyčce
- Použij svou funkci v příkazu
asserta ověř, že počet uzlů v trojúhelníkovém vztahu s uzlem1grafuTse rovná35.
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
# 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(____(____, ____)) == ____