เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การค้นหาโหนดที่อยู่ในความสัมพันธ์แบบสามเหลี่ยม

NetworkX มี API สำหรับนับจำนวนสามเหลี่ยมที่แต่ละโหนดเกี่ยวข้อง ได้แก่ nx.triangles(G) ซึ่งคืนค่าเป็น dictionary โดยมีโหนดเป็น key และจำนวนสามเหลี่ยมเป็น value ในแบบฝึกหัดนี้ ให้ปรับปรุงฟังก์ชันที่กำหนดไว้ก่อนหน้า เพื่อดึงโหนดทั้งหมดที่มีความสัมพันธ์แบบสามเหลี่ยมกับโหนดที่ระบุ

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การวิเคราะห์เครือข่ายเบื้องต้นด้วย Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เขียนฟังก์ชัน nodes_in_triangle() ที่รับพารามิเตอร์ 2 ตัว ได้แก่ G และ n เพื่อระบุโหนดทั้งหมดที่มีความสัมพันธ์แบบสามเหลี่ยมกับโหนดที่กำหนด
    • ใน for loop ให้วนซ้ำผ่านทุกคู่ความสัมพันธ์สามเหลี่ยมที่เป็นไปได้
    • ตรวจสอบว่าโหนด n1 และ n2 มีเส้นเชื่อมระหว่างกันหรือไม่ หากมี ให้เพิ่มทั้งสองโหนดลงใน set triangle_nodes
  • นำฟังก์ชันที่เขียนไปใช้ในคำสั่ง assert เพื่อตรวจสอบว่าจำนวนโหนดที่มีความสัมพันธ์แบบสามเหลี่ยมกับโหนด 1 ของกราฟ T เท่ากับ 35

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

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(____(____, ____)) == ____
แก้ไขและรันโค้ด