Bắt đầu ngayBắt đầu miễn phí

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

Xem khóa học

Hướng dẫn bài tập

  • Viết hàm node_in_open_triangle() với hai tham số - Gn - để 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 n1n2 không có cạnh nối giữa chúng, đặt in_open_triangle thành True, thoát ra khỏi câu lệnh if và trả về in_open_triangle.
  • 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 trong T.
    • Nếu nút hiện tại n nằm trong một tam giác mở, hãy tăng num_open_triangles.

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)
Chỉnh sửa và Chạy Mã