CComponentWisp
พื้นที่เขียนโค้ดด้วย AI

ส่วนประกอบเชื่อมต่ออย่างเข้มแบบมีทิศทาง

แบ่งกราฟมีทิศทางที่มีจุดยอดไม่เกิน 64 จุดเป็นส่วนประกอบเชื่อมโยงอย่างเข้ม.

● ● ●ComponentWisp●
ขั้นตอนการทำงาน · ส่วนประกอบเชื่อมต่ออย่างเข้มแบบมีทิศทาง ×
def strong_components(graph):
    if type(graph) is not list or len(graph) > 64:
        raise ValueError("scc.graph")
    n = len(graph)
    if any(type(row) is not set or any(type(v) is not int or not 0 <= v < n for v in row) for row in graph):
        raise ValueError("scc.edge")
    seen, order = set(), []
    for start in range(n):
        if start in seen:
            continue
        seen.add(start)
        stack = [(start, iter(sorted(graph[start])))]
        while stack:
            node, edges = stack[-1]
            target = next(edges, None)
            if target is None:
                order.append(node)
                stack.pop()
            elif target not in seen:
                seen.add(target)
                stack.append((target, iter(sorted(graph[target]))))
    reverse = [set() for _ in graph]
    for node, edges in enumerate(graph):
        for target in edges:
            reverse[target].add(node)
    seen, result = set(), []
    for start in reversed(order):
        if start in seen:
            continue
        group, pending = [], [start]
        seen.add(start)
        while pending:
            node = pending.pop()
            group.append(node)
            for target in reverse[node]-seen:
                seen.add(target)
                pending.append(target)
        result.append(sorted(group))
    return sorted(result)
✳ส่วนประกอบเชื่อมต่ออย่างเข้มแบบมีทิศทาง
✓ การเปลี่ยนแปลงตรวจสอบก่อนนำไปใช้ ↗
ภาพประกอบพื้นที่ทำงาน
  1. ตรวจสอบก่อนนำไปใช้

    เปรียบเทียบการทำงานจริงกับผลที่คาดหวัง หากการตรวจสอบไม่ผ่าน ให้หาสาเหตุก่อนแก้ไขเพิ่มเติม

  2. โมเดล

    ตั้งค่า endpoint ที่รองรับ OpenAI หรือ Anthropic ด้วย URL หลักและคีย์ API หากจำเป็น ทดสอบการเชื่อมต่อ เซิร์ฟเวอร์โมเดลในเครื่องต้องทำงานอยู่ เครื่องมือระยะไกลอาจส่งข้อมูลแยกต่างหาก

  3. โปรเจกต์

    ทดสอบวงจร จุดยอดโดดเดี่ยวและอินพุตว่าง พร้อมปฏิเสธสมาชิกเซตที่ไม่ถูกต้องโดยไม่เปลี่ยนเซตเพื่อนบ้าน.

ขั้นตอนการทำงาน

ส่วนประกอบเชื่อมต่ออย่างเข้มแบบมีทิศทาง

ขั้นตอนการทำงาน ↗
ขั้นตอนการทำงาน
def strong_components(graph):
    if type(graph) is not list or len(graph) > 64:
        raise ValueError("scc.graph")
    n = len(graph)
    if any(type(row) is not set or any(type(v) is not int or not 0 <= v < n for v in row) for row in graph):
        raise ValueError("scc.edge")
    seen, order = set(), []
    for start in range(n):
        if start in seen:
            continue
        seen.add(start)
        stack = [(start, iter(sorted(graph[start])))]
        while stack:
            node, edges = stack[-1]
            target = next(edges, None)
            if target is None:
                order.append(node)
                stack.pop()
            elif target not in seen:
                seen.add(target)
                stack.append((target, iter(sorted(graph[target]))))
    reverse = [set() for _ in graph]
    for node, edges in enumerate(graph):
        for target in edges:
            reverse[target].add(node)
    seen, result = set(), []
    for start in reversed(order):
        if start in seen:
            continue
        group, pending = [], [start]
        seen.add(start)
        while pending:
            node = pending.pop()
            group.append(node)
            for target in reverse[node]-seen:
                seen.add(target)
                pending.append(target)
        result.append(sorted(group))
    return sorted(result)
พื้นที่เขียนโค้ดด้วย AI

ให้กลุ่มการพึ่งพามีความหมายที่แอปใช้ได้

ComponentWisp เป็นพื้นที่เขียนโค้ดด้วย AI บน Windows สำหรับนักพัฒนาที่ติดตามความสัมพันธ์ผ่านข้อมูลและโค้ดโครงการ นำรูปแบบแทนกราฟและฝั่งที่ต้องใช้กลุ่มมาสนทนา ขอให้ผู้ช่วยตรวจว่าเส้นเชื่อมมีทิศทางหมายถึงอะไรก่อนเสนอเปลี่ยนการจัดกลุ่ม ผลมีประโยชน์เมื่อความสัมพันธ์ที่รักษาไว้ตรงคำถามที่แอปพยายามตอบเท่านั้น

งานเกี่ยวกับ strong_components.py อาจตรวจกลุ่มที่จุดยอดเข้าถึงกันได้ผ่านเส้นทางมีทิศทาง ใช้ตัวอย่างการพึ่งพาเล็กเพื่อแยกการเข้าถึงกันจากการเชื่อมต่อทางเดียว แล้วตรวจการนำไปใช้และลำดับผล หากใช้โค้ดกับการพึ่งพา ให้ระบุการจับคู่วัตถุจริงกับจุดยอดอย่างชัดเจน ฟังก์ชันช่วยเพียงอย่างเดียวไม่อาจกำหนดความหมายของการพึ่งพาเหล่านั้น

หลังอ่านข้อเสนอ ให้รันการตรวจโครงการกับวงจร เส้นเชื่อมทางเดียว และจุดยอดโดดเดี่ยว ตรวจฝั่งใช้ผลว่าปฏิบัติต่อกลุ่มอย่างสอดคล้อง ComponentWisp เชื่อมต่อปลายทาง OpenAI-compatible หรือ Anthropic ที่รองรับ พร้อมข้อมูลรับรองเมื่อจำเป็น อาจเลือกโมเดลไร้ข้อจำกัดได้เมื่อมีให้ แต่โมเดลและเซิร์ฟเวอร์กำหนดข้อจำกัด เครื่องมือ และขีดจำกัดบริบท คงความหมายเส้นเชื่อมและกลุ่มคาดหวังไว้ในการสนทนา เพื่อให้การแก้ถัดไปรักษาข้อกำหนดซอฟต์แวร์เดิม

คำถามเกี่ยวกับโค้ดจัดกลุ่มการพึ่งพา

การพึ่งพาทางเดียวพอให้รวมวัตถุไว้ด้วยกันหรือไม่

ไม่พอสำหรับกลุ่มที่นิยามโดยการเข้าถึงกันได้แบบมีทิศทาง ระบุกฎจัดกลุ่มที่ตั้งใจและให้ตัวอย่างทางเดียว เพื่อไม่ให้การนำไปใช้ที่เสนอเผลอมองความสัมพันธ์มีทิศทางเป็นการเชื่อมต่อไม่มีทิศทาง

ควรจับคู่วัตถุโครงการจริงกับจุดยอดอย่างไร

เก็บการจับคู่ชัดเจนให้ฝั่งใช้ผลตีความได้ ตรวจว่าเกิดอะไรเมื่อเอาวัตถุออกหรือเรียงใหม่ และทดสอบว่ากลุ่มที่คืนยังอ้างถึงวัตถุโครงการที่ตั้งใจ

การจัดกลุ่มการพึ่งพากำหนดลำดับทำงานหรือไม่

เป็นคนละคำถาม แอปอาจต้องมีตรรกะเพิ่มเพื่อเรียงกลุ่มหรือจัดการวงจร ระบุข้อกำหนดนั้นแยกและตรวจฝั่งใช้ผลที่เกี่ยวข้อง แทนสมมติว่าการแบ่งกลุ่มเป็นแผนทำงานครบถ้วน

เหตุใดต้องมีจุดยอดโดดเดี่ยวในการตรวจ

เพื่อยืนยันว่าวัตถุที่ไม่มีเส้นเชื่อมยังได้รับรูปแบบแทนที่แอปคาดหวัง ตรวจทั้งผลฟังก์ชันช่วยและมุมมองฝั่งใช้ผล โดยเฉพาะเมื่อการปรับโครงสร้างสร้างข้อมูลระหว่างทางด้วยการวนเฉพาะการเชื่อมต่อที่มี

ดาวน์โหลดสำหรับ Windows ↗

ComponentWisp · อัปเดต 2026-10-25