Identificarea nodurilor implicate în triunghiuri
NetworkX oferă un API pentru a număra câte triunghiuri implică fiecare nod: nx.triangles(G). Aceasta returnează un dicționar în care cheile sunt nodurile, iar valorile reprezintă numărul de triunghiuri. În acest exercițiu, sarcina ta este să modifici funcția definită anterior pentru a extrage toate nodurile implicate într-o relație de tip triunghi cu un nod dat.
Acest exercițiu face parte din cursul
Introducere în analiza rețelelor în Python
Instrucțiuni pentru exercițiu
- Scrie o funcție
nodes_in_triangle()cu doi parametri –Gșin– care identifică toate nodurile aflate într-o relație de tip triunghi cu un nod dat.- În bucla
for, iterează peste toate combinațiile posibile de relații de tip triunghi. - Verifică dacă nodurile
n1șin2au o muchie între ele. Dacă da, adaugă ambele noduri la mulțimeatriangle_nodes.
- În bucla
- Folosește funcția ta într-o instrucțiune
assertpentru a verifica că numărul de noduri implicate într-o relație de tip triunghi cu nodul1al grafuluiTeste egal cu35.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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(____(____, ____)) == ____