SSpanSorbus
Ruang kerja kode dengan AI

Sisi jembatan graf tak berarah

Cari jembatan pada graf sederhana tak berarah dengan maksimal 32 simpul.

● ● ●SpanSorbus●
Alur kerja · Sisi jembatan graf tak berarah ×
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)
✳Cari jembatan pada graf sederhana tak berarah dengan maksimal 32 simpul.
✓ PerubahanTinjau sebelum menerapkan ↗
Ilustrasi ruang kerja
01

Tinjau sebelum menerapkan

Bandingkan perilaku sebenarnya dengan hasil yang diharapkan. Jika pemeriksaan gagal, cari penyebabnya sebelum membuat perubahan lain.

02

Model

Atur endpoint kompatibel OpenAI atau Anthropic dengan URL dasar dan kunci API jika diperlukan. Uji koneksi. Server model lokal harus berjalan; alat jarak jauh dapat mengirim data secara terpisah.

03

Proyek

Uji komponen terpisah dan siklus, tolak sisi ganda, lingkar diri, dan ujung tidak sah tanpa mengubah masukan.

Alur kerja

Sisi jembatan graf tak berarah

Alur kerja ↗
Alur kerja
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)
Ruang kerja kode dengan AI

Hubungkan hasil graf dengan keputusan yang dibuat aplikasi

SpanSorbus adalah ruang kerja pemrograman Windows untuk memeriksa logika konektivitas dalam konteks berkas sumber nyata. Mulailah dengan menjelaskan keputusan yang dibuat aplikasi berdasarkan hasil graf. Minta model terhubung memeriksa representasi masukan dan kode penggunanya sebelum meminta perubahan penelusuran atau keluaran.

Tugas berguna dapat memakai bridge_edges.py untuk menyelidiki sisi yang penghapusannya memisahkan bagian terhubung dari data uji. Sertakan graf dengan siklus sebagai pembanding dan nyatakan daftar sisi yang diharapkan. Tinjau asumsi graf sederhana tak berarah bersama implementasi agar usulan perubahan tidak diam-diam menerima jenis masukan berbeda.

Pekerjaan perangkat lunak berlanjut setelah rutin mengembalikan hasil. Periksa cara pemanggil menamai simpul, menyajikan sisi, dan menangani data yang ditolak, lalu jalankan pemeriksaan proyek dengan data uji terputus dan kosong. Kaitkan peninjauan dengan hasil teramati tersebut. Penjelasan graf yang benar tidak membuktikan aplikasi memetakan data sebenarnya ke representasi yang diharapkan.

SpanSorbus terhubung melalui endpoint kompatibel OpenAI atau endpoint Anthropic yang didukung dengan kredensial jika diperlukan. Pilih model AI tanpa sensor jika endpoint menyediakannya, sambil memeriksa batasan penyedia dan alat yang tersedia. Batas konteks bergantung pada model dan server, jadi berikan data uji terbatas beserta kode pengguna terkait untuk percakapan pemrograman terfokus.

Pertanyaan sebelum mengubah kode konektivitas

Apakah setiap sisi di luar siklus memerlukan perlakuan sama?

Periksa definisi graf yang tepat dan keputusan yang dibuat aplikasi. Gunakan data uji dengan hasil harapan yang ditulis secara independen. Tinjau asumsi kode mengenai arah, sisi paralel, dan gelang sebelum mengubah penjelasan graf informal menjadi persyaratan perangkat lunak.

Mengapa menguji masukan terputus?

Aplikasi mungkin memuat beberapa komponen terpisah, masing-masing dengan sisi relevannya sendiri. Penelusuran yang dimulai dari satu simpul dapat melewatkan yang lain. Sertakan data uji dengan lebih dari satu komponen dan bandingkan keluaran lengkap, bukan hanya sisi harapan pertama.

Bisakah saya memberikan sisi berulang dari data impor?

Periksa dahulu kontrak masukan yang diterima. Contoh mengharapkan graf sederhana dan menolak duplikasi. Jika data impor memuat sisi berulang, putuskan apakah pengimpor harus menormalisasinya atau melaporkan kesalahan sebelum meminta perubahan rutin graf.

Apa yang harus dipertahankan kode pengguna saat menampilkan sisi?

Tentukan pemetaan pengenal simpul internal ke label yang terlihat pengguna, beserta urutan yang dibutuhkan untuk keluaran stabil. Tinjau pemetaan itu bersama usulan perubahan. Pasangan sisi internal yang benar masih dapat menjadi hasil menyesatkan jika pemanggil mengaitkannya dengan label yang salah.

Unduh untuk Windows ↗

SpanSorbus · Diperbarui 2026-10-25