Tinjau sebelum menerapkan
Bandingkan perilaku sebenarnya dengan hasil yang diharapkan. Jika pemeriksaan gagal, cari penyebabnya sebelum membuat perubahan lain.
Cari jembatan pada graf sederhana tak berarah dengan maksimal 32 simpul.
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)Bandingkan perilaku sebenarnya dengan hasil yang diharapkan. Jika pemeriksaan gagal, cari penyebabnya sebelum membuat perubahan lain.
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.
Uji komponen terpisah dan siklus, tolak sisi ganda, lingkar diri, dan ujung tidak sah tanpa mengubah masukan.
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)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.
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.
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.
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.
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.
SpanSorbus · Diperbarui 2026-10-25