Tìm tam giác mở
Giờ hãy chuyển sang tìm các tam giác mở! Hãy nhớ rằng chúng là nền tảng của hệ thống gợi ý bạn bè; nếu "A" quen "B" và "A" quen "C", thì nhiều khả năng "B" cũng quen "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
node_in_open_triangle()với hai tham số -Gvàn- để xác định một nút có nằm trong tam giác mở với các láng giềng của nó hay không.- Trong vòng lặp
for, lặp qua tất cả các tổ hợp quan hệ tam giác có thể. - Nếu các nút
n1vàn2không có cạnh nối giữa chúng, đặtin_open_trianglethànhTrue, thoát ra khỏi câu lệnhifvà trả vềin_open_triangle.
- Trong vòng lặp
- Dùng hàm này để đếm số lượng tam giác mở tồn tại trong
T.- Trong vòng lặp
for, lặp qua tất cả các nút trongT. - Nếu nút hiện tại
nnằm trong một tam giác mở, hãy tăngnum_open_triangles.
- Trong vòng lặp
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
# Define node_in_open_triangle()
def node_in_open_triangle(G, n):
"""
Checks whether pairs of neighbors of node `n` in graph `G` are in an 'open triangle' relationship with node `n`.
"""
in_open_triangle = False
# Iterate over all possible triangle relationship combinations
for n1, n2 in ____:
# Check if n1 and n2 do NOT have an edge between them
if not ____:
in_open_triangle = ____
break
return ____
# Compute the number of open triangles in T
num_open_triangles = 0
# Iterate over all the nodes in T
for n in ____:
# Check if the current node is in an open triangle
if ____:
# Increment num_open_triangles
____ += 1
print(num_open_triangles)