SSpanSorbus
Spațiu de programare cu AI

Muchii-punte neorientate

Găsește punți într-un graf simplu neorientat cu cel mult 32 de vârfuri.

● ● ●SpanSorbus●
Fluxuri de lucru · Muchii-punte neorientate ×
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)
✳Găsește punți într-un graf simplu neorientat cu cel mult 32 de vârfuri.
✓ ModificăriVerifică înainte de aplicare ↗
Ilustrarea spațiului de lucru
01

Verifică înainte de aplicare

Compară comportamentul real cu rezultatul așteptat. Dacă o verificare eșuează, cercetează cauza înainte de alte modificări.

02

Modele

Configurează un endpoint compatibil OpenAI sau Anthropic cu URL-ul de bază și cheia API, dacă este necesară. Testează conexiunea. Serverul local trebuie să ruleze; instrumentele externe pot transmite date separat.

03

Proiect

Testează componente separate și cicluri, respingând muchii duplicate, bucle și capete invalide fără schimbarea intrării.

Fluxuri de lucru

Muchii-punte neorientate

Fluxuri de lucru ↗
Fluxuri de lucru
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)
Spațiu de programare cu AI

Leagă rezultatele grafului de o decizie a aplicației

SpanSorbus este un spațiu de lucru Windows pentru examinarea logicii conectivității în contextul fișierelor sursă reale. Începe prin a descrie decizia pe care aplicația o ia pe baza rezultatului grafului. Cere modelului conectat să examineze reprezentarea intrării și codul care o folosește înainte să soliciți modificarea parcurgerii sau ieșirii.

O sarcină utilă poate folosi bridge_edges.py pentru a investiga o muchie a cărei eliminare separă o parte conectată a unui caz de test. Include pentru comparație un graf cu ciclu și precizează lista de muchii așteptată. Examinează ipotezele grafului simplu, neorientat, împreună cu implementarea, astfel încât modificarea propusă să nu accepte implicit alt tip de intrare.

Lucrul la software continuă după returnarea rutinei. Examinează cum denumește apelantul nodurile, prezintă muchiile și tratează datele respinse, apoi rulează verificările proiectului cu cazuri deconectate și goale. Leagă examinarea de aceste rezultate observabile. O explicație corectă a grafului nu stabilește că aplicația își transpune datele reale în reprezentarea așteptată.

SpanSorbus se conectează prin endpointuri acceptate compatibile cu OpenAI sau Anthropic, cu credențiale când sunt necesare. Alege un model de IA fără cenzură acolo unde endpointul îl furnizează, verificând restricțiile furnizorului și instrumentele disponibile. Limitele contextului depind de model și server, așa că oferă un caz de test delimitat și codul relevant care folosește rezultatele pentru o conversație concentrată despre programare.

Întrebări înainte de modificarea codului de conectivitate

Necesită orice muchie din afara unui ciclu aceeași tratare?

Verifică definiția precisă a grafului și decizia luată de aplicație. Folosește un caz de test cu rezultatul așteptat scris independent. Examinează ipotezele codului privind orientarea, muchiile paralele și buclele înainte să transformi o explicație informală a grafului într-o cerință software.

De ce să testez intrarea deconectată?

Aplicația poate conține mai multe componente separate, fiecare cu propriile muchii relevante. O parcurgere care începe dintr-un singur nod le poate omite pe celelalte. Include un caz cu mai multe componente și compară ieșirea completă, nu doar prima muchie așteptată.

Pot furniza muchii repetate din date importate?

Examinează mai întâi contractul intrării acceptate. Exemplul așteaptă un graf simplu și respinge duplicatele. Dacă datele importate conțin muchii repetate, decide dacă importatorul trebuie să le normalizeze sau să raporteze o eroare înainte să ceri modificarea rutinei pentru grafuri.

Ce trebuie să păstreze codul care afișează o muchie?

Definește corespondența dintre identificatorii interni ai nodurilor și etichetele vizibile utilizatorului, plus orice ordine necesară pentru ieșire stabilă. Examinează corespondențele cu modificarea propusă. O pereche internă corectă de noduri poate produce totuși un rezultat înșelător dacă apelantul o asociază etichetelor greșite.

Descarcă pentru Windows ↗

SpanSorbus · Actualizat 2026-10-25