Tìm các node tham gia vào tam giác
NetworkX cung cấp một API để đếm số tam giác mà mỗi node tham gia: nx.triangles(G). Hàm này trả về một dictionary với khóa là node và giá trị là số tam giác. Nhiệm vụ của bạn trong bài này là chỉnh sửa hàm đã định nghĩa trước đó để trích xuất tất cả các node tham gia vào quan hệ tam giác với một node cho trước.
Bài tập này là một phần của khóa học
Nhập môn Phân tích Mạng bằng Python
Hướng dẫn bài tập
- Viết hàm
nodes_in_triangle()với hai tham sốGvàn, dùng để xác định tất cả các node có quan hệ tam giác với node cho trước.- Trong vòng lặp
for, lặp qua mọi tổ hợp quan hệ tam giác có thể có. - Kiểm tra liệu các node
n1vàn2có cạnh nối giữa chúng hay không. Nếu có, thêm cả hai node vào tậptriangle_nodes.
- Trong vòng lặp
- Dùng hàm của bạn trong một câu lệnh
assertđể kiểm tra rằng số node tham gia vào quan hệ tam giác với node1của đồ thịTbằng35.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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(____(____, ____)) == ____