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

เส้นเชื่อมสะพานในกราฟไร้ทิศทาง

หาสะพานในกราฟอย่างง่ายไร้ทิศทางไม่เกิน 32 จุดยอด.

● ● ●SpanSorbus●
ขั้นตอนการทำงาน · เส้นเชื่อมสะพานในกราฟไร้ทิศทาง ×
def bridge_edges(n, edges):
    if type(n) is not int or not 0 <= n <= 32:
        raise ValueError("vertex count")
    if type(edges) is not list or len(edges) > 496:
        raise ValueError("edge count")
    graph = [set() for _ in range(n)]
    for edge in edges:
        if type(edge) is not tuple or len(edge) != 2 or any(
            type(x) is not int or not 0 <= x < n for x in edge):
            raise ValueError("edge endpoints")
        a, b = edge
        if a == b or b in graph[a]:
            raise ValueError("simple undirected edges")
        graph[a].add(b); graph[b].add(a)
    timer, found = 0, []
    entered, low = [-1] * n, [0] * n
    def visit(v, parent):
        nonlocal timer
        entered[v] = low[v] = timer; timer += 1
        for u in sorted(graph[v]):
            if u == parent:
                continue
            if entered[u] < 0:
                visit(u, v); low[v] = min(low[v], low[u])
                if low[u] > entered[v]:
                    found.append(tuple(sorted((v, u))))
            else:
                low[v] = min(low[v], entered[u])
    for v in range(n):
        if entered[v] < 0:
            visit(v, -1)
    return sorted(found)
✳หาสะพานในกราฟอย่างง่ายไร้ทิศทางไม่เกิน 32 จุดยอด.
✓ การเปลี่ยนแปลงตรวจสอบก่อนนำไปใช้ ↗
ภาพประกอบพื้นที่ทำงาน
01

ตรวจสอบก่อนนำไปใช้

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

02

โมเดล

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

03

โปรเจกต์

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

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

เส้นเชื่อมสะพานในกราฟไร้ทิศทาง

ขั้นตอนการทำงาน ↗
ขั้นตอนการทำงาน
def bridge_edges(n, edges):
    if type(n) is not int or not 0 <= n <= 32:
        raise ValueError("vertex count")
    if type(edges) is not list or len(edges) > 496:
        raise ValueError("edge count")
    graph = [set() for _ in range(n)]
    for edge in edges:
        if type(edge) is not tuple or len(edge) != 2 or any(
            type(x) is not int or not 0 <= x < n for x in edge):
            raise ValueError("edge endpoints")
        a, b = edge
        if a == b or b in graph[a]:
            raise ValueError("simple undirected edges")
        graph[a].add(b); graph[b].add(a)
    timer, found = 0, []
    entered, low = [-1] * n, [0] * n
    def visit(v, parent):
        nonlocal timer
        entered[v] = low[v] = timer; timer += 1
        for u in sorted(graph[v]):
            if u == parent:
                continue
            if entered[u] < 0:
                visit(u, v); low[v] = min(low[v], low[u])
                if low[u] > entered[v]:
                    found.append(tuple(sorted((v, u))))
            else:
                low[v] = min(low[v], entered[u])
    for v in range(n):
        if entered[v] < 0:
            visit(v, -1)
    return sorted(found)
พื้นที่เขียนโค้ดด้วย AI

เชื่อมผลกราฟกับการตัดสินใจของแอป

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

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

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

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

คำถามก่อนแก้โค้ดความเชื่อมโยง

ทุกเส้นเชื่อมนอกวงจรต้องจัดการเหมือนกันหรือไม่

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

ทำไมทดสอบอินพุตไม่เชื่อมกัน

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

ให้เส้นเชื่อมซ้ำจากข้อมูลนำเข้าได้หรือไม่

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

ส่วนใช้ผลควรรักษาอะไรเมื่อแสดงเส้นเชื่อม

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

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

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