ComeçarComece de graça

Encontrando nós envolvidos em triângulos

O NetworkX fornece uma API para contar o número de triângulos dos quais cada nó participa: nx.triangles(G). Ela retorna um dicionário com os nós como chaves e o número de triângulos como valores. Sua tarefa neste exercício é modificar a função definida anteriormente para extrair todos os nós envolvidos em um relacionamento de triângulo com um determinado nó.

Este exercício faz parte do curso

Introdução à Análise de Redes em Python

Ver curso

Instruções do exercício

  • Escreva uma função nodes_in_triangle() que tenha dois parâmetros — G e n — e identifique todos os nós em um relacionamento de triângulo com um nó dado.
    • No laço for, itere por todas as combinações possíveis de relacionamentos em triângulo.
    • Verifique se os nós n1 e n2 têm uma aresta entre eles. Se tiverem, adicione ambos os nós ao conjunto triangle_nodes.
  • Use sua função em uma instrução assert para verificar se o número de nós envolvidos em um relacionamento de triângulo com o nó 1 do grafo T é igual a 35.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

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(____(____, ____)) == ____
Editar e executar o código