MulaiMulai sekarang secara gratis

Menemukan node yang terlibat dalam segitiga

NetworkX menyediakan API untuk menghitung jumlah segitiga yang melibatkan setiap node: nx.triangles(G). Fungsi ini mengembalikan dictionary dengan node sebagai kunci dan jumlah segitiga sebagai nilai. Tugas Anda dalam latihan ini adalah memodifikasi fungsi yang didefinisikan sebelumnya untuk mengekstrak semua node yang terlibat dalam relasi segitiga dengan sebuah node tertentu.

Latihan ini adalah bagian dari kursus

Pengantar Analisis Jaringan di Python

Lihat Kursus

Petunjuk latihan

  • Tulis fungsi nodes_in_triangle() yang memiliki dua parameter — G dan n — dan mengidentifikasi semua node yang memiliki relasi segitiga dengan sebuah node tertentu.
    • Di dalam for loop, iterasi semua kemungkinan kombinasi relasi segitiga.
    • Periksa apakah node n1 dan n2 memiliki sisi di antara keduanya. Jika ya, tambahkan kedua node ke himpunan triangle_nodes.
  • Gunakan fungsi Anda dalam pernyataan assert untuk memeriksa bahwa jumlah node yang terlibat dalam relasi segitiga dengan node 1 pada graf T sama dengan 35.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

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(____(____, ____)) == ____
Edit dan Jalankan Kode