BaşlayınÜcretsiz başlayın

Açık üçgenleri bulma

Şimdi açık üçgenleri bulmaya geçelim! Hatırlarsan, arkadaş öneri sistemlerinin temelini oluştururlar; eğer "A" "B"yi tanıyor ve "A" "C"yi tanıyorsa, büyük olasılıkla "B" de "C"yi tanıyordur.

Bu egzersiz, kursun bir parçasıdır

Python ile Ağ Analizine Giriş

Kursa Göz Atın

Egzersiz talimatları

  • G ve n olmak üzere iki parametre alan ve bir düğümün komşularıyla birlikte açık bir üçgen içinde olup olmadığını belirleyen node_in_open_triangle() adlı bir fonksiyon yaz.
    • for döngüsünde tüm olası üçgen ilişki kombinasyonlarını dolaş.
    • Eğer n1 ve n2 düğümleri arasında bir kenar yoksa, in_open_triangle değerini True yap, if ifadesinden çık ve in_open_triangle değerini döndür.
  • Bu fonksiyonu T içinde var olan açık üçgenlerin sayısını bulmak için kullan.
    • for döngüsünde T içindeki tüm düğümleri dolaş.
    • Eğer mevcut düğüm n açık bir üçgen içindeyse, num_open_triangles değerini artır.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

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)
Kodu Düzenle ve Çalıştır