SSpanSorbus
Không gian lập trình với AI

Cạnh cầu của đồ thị vô hướng

Tìm cạnh cầu trong đồ thị đơn vô hướng tối đa 32 đỉnh.

● ● ●SpanSorbus●
Quy trình · Cạnh cầu của đồ thị vô hướng ×
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)
✳Tìm cạnh cầu trong đồ thị đơn vô hướng tối đa 32 đỉnh.
✓ Thay đổiKiểm tra trước khi áp dụng ↗
Minh họa không gian làm việc
01

Kiểm tra trước khi áp dụng

So sánh hành vi thực tế với kết quả mong đợi. Nếu kiểm tra thất bại, tìm nguyên nhân trước khi sửa tiếp.

02

Mô hình

Cấu hình endpoint tương thích OpenAI hoặc Anthropic bằng URL cơ sở và khóa API nếu cần. Kiểm tra kết nối. Máy chủ mô hình cục bộ phải đang chạy; công cụ từ xa có thể truyền dữ liệu riêng.

03

Dự án

Kiểm tra thành phần rời và chu trình, từ chối cạnh lặp, khuyên và đầu mút sai mà không đổi đầu vào.

Quy trình

Cạnh cầu của đồ thị vô hướng

Quy trình ↗
Quy trình
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)
Không gian lập trình với AI

Nối kết quả đồ thị với quyết định ứng dụng đưa ra

SpanSorbus là không gian lập trình trên Windows để xem xét logic liên thông trong bối cảnh tệp nguồn thực tế. Bắt đầu bằng việc mô tả quyết định ứng dụng đưa ra từ kết quả đồ thị. Yêu cầu mô hình kết nối kiểm tra biểu diễn đầu vào và nơi sử dụng trước khi yêu cầu thay đổi phép duyệt hoặc đầu ra.

Nhiệm vụ hữu ích có thể dùng bridge_edges.py để khảo sát một cạnh mà khi bỏ đi sẽ tách một phần liên thông của dữ liệu kiểm thử. Bao gồm đồ thị có chu trình để so sánh và nêu danh sách cạnh kỳ vọng. Rà soát giả định đồ thị đơn, vô hướng cùng triển khai để thay đổi đề xuất không âm thầm chấp nhận loại đầu vào khác.

Công việc phần mềm tiếp tục sau khi thủ tục trả về. Kiểm tra cách mã gọi đặt tên nút, trình bày cạnh và xử lý dữ liệu bị từ chối, rồi chạy kiểm tra dự án với dữ liệu rời rạc và rỗng. Giữ rà soát gắn với các kết quả quan sát được đó. Giải thích đồ thị đúng không xác lập rằng ứng dụng ánh xạ dữ liệu thực tế thành biểu diễn kỳ vọng.

SpanSorbus kết nối qua điểm cuối tương thích OpenAI hoặc Anthropic được hỗ trợ với thông tin xác thực khi cần. Chọn mô hình AI không kiểm duyệt nơi điểm cuối cung cấp, đồng thời kiểm tra hạn chế của nhà cung cấp và công cụ khả dụng. Giới hạn ngữ cảnh phụ thuộc mô hình và máy chủ, nên cung cấp dữ liệu kiểm thử có giới hạn cùng nơi sử dụng liên quan để cuộc trao đổi lập trình tập trung.

Câu hỏi trước khi thay đổi mã liên thông

Mọi cạnh ngoài chu trình có cần xử lý giống nhau không?

Kiểm tra định nghĩa đồ thị chính xác và quyết định ứng dụng đang đưa ra. Dùng dữ liệu kiểm thử có kết quả kỳ vọng viết độc lập. Rà soát giả định mã về hướng, cạnh song song và khuyên trước khi chuyển giải thích đồ thị thông thường thành yêu cầu phần mềm.

Tại sao kiểm thử đầu vào không liên thông?

Ứng dụng có thể chứa nhiều thành phần riêng biệt, mỗi thành phần có cạnh liên quan riêng. Phép duyệt bắt đầu từ một nút có thể bỏ sót phần khác. Bao gồm dữ liệu có nhiều thành phần và so sánh toàn bộ đầu ra, không chỉ cạnh kỳ vọng đầu tiên.

Tôi có thể cung cấp cạnh lặp từ dữ liệu nhập không?

Trước tiên kiểm tra quy ước đầu vào chấp nhận. Ví dụ mong đợi đồ thị đơn và từ chối trùng lặp. Nếu dữ liệu nhập chứa cạnh lặp, quyết định bộ nhập nên chuẩn hóa hay báo lỗi trước khi yêu cầu thay đổi thủ tục đồ thị.

Nơi sử dụng nên giữ gì khi hiển thị cạnh?

Xác định ánh xạ giữa mã định danh nút nội bộ và nhãn người dùng thấy, cùng thứ tự cần để đầu ra ổn định. Rà soát các ánh xạ đó với sửa đổi đề xuất. Cặp cạnh nội bộ đúng vẫn có thể thành kết quả gây hiểu nhầm nếu mã gọi liên kết sai nhãn.

Tải cho Windows ↗

SpanSorbus · Cập nhật 2026-10-25