ÎncepețiÎncepe gratuit

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

Vezi cursul

Instrucțiuni pentru exercițiu

  • Scrie o funcție nodes_in_triangle() cu doi parametri – G și n – 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 și n2 au o muchie între ele. Dacă da, adaugă ambele noduri la mulțimea triangle_nodes.
  • Folosește funcția ta într-o instrucțiune assert pentru a verifica că numărul de noduri implicate într-o relație de tip triunghi cu nodul 1 al grafului T este egal cu 35.

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(____(____, ____)) == ____
Editează și rulează codul