SSpanSorbus
Ambiente di sviluppo con IA

Archi ponte non orientati

Trova i ponti in un grafo semplice non orientato con massimo 32 vertici.

● ● ●SpanSorbus●
Flussi di lavoro · Archi ponte non orientati ×
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)
✳Trova i ponti in un grafo semplice non orientato con massimo 32 vertici.
✓ ModificheControlla prima di applicare ↗
Illustrazione dell’ambiente
01

Controlla prima di applicare

Confronta il comportamento effettivo con il risultato atteso. Se una verifica fallisce, indaga la causa prima di altre modifiche.

02

Modelli

Configura un endpoint compatibile con OpenAI o Anthropic usando URL di base e chiave API, se necessaria. Prova la connessione. Il server locale deve essere in esecuzione; gli strumenti remoti possono trasmettere dati separatamente.

03

Progetto

Controlla componenti separate e cicli, rifiutando archi duplicati, cappi ed estremi non validi senza modificare l’ingresso.

Flussi di lavoro

Archi ponte non orientati

Flussi di lavoro ↗
Flussi di lavoro
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)
Ambiente di sviluppo con IA

Collega i risultati del grafo a una decisione dell'applicazione

SpanSorbus è un ambiente di programmazione per Windows per esaminare la logica di connettività nel contesto di file sorgente reali. Inizia descrivendo la decisione che l'applicazione prende dal risultato del grafo. Chiedi al modello collegato di esaminare la rappresentazione dell'input e il codice che la usa prima di richiedere una modifica alla visita o all'output.

Un'attività utile può usare bridge_edges.py per analizzare un arco la cui rimozione separa una parte connessa di un caso di test. Includi un grafo con un ciclo come confronto e indica l'elenco di archi atteso. Rivedi le ipotesi di grafo semplice e non orientato insieme all'implementazione, affinché la modifica proposta non accetti silenziosamente un diverso tipo di input.

Il lavoro sul software continua dopo che la procedura restituisce il risultato. Esamina come il chiamante denomina i nodi, presenta gli archi e gestisce i dati rifiutati, poi esegui i controlli del progetto con casi disconnessi e vuoti. Mantieni la revisione legata a questi risultati osservabili. Una spiegazione corretta del grafo non dimostra che l'applicazione mappi i dati effettivi nella rappresentazione prevista.

SpanSorbus si collega tramite endpoint supportati compatibili con OpenAI o Anthropic, con credenziali quando richieste. Scegli un modello di IA senza censura dove l'endpoint ne fornisce uno, controllando restrizioni del fornitore e strumenti disponibili. I limiti di contesto dipendono da modello e server, quindi fornisci un caso di test circoscritto e il codice utilizzatore pertinente per una conversazione mirata sul codice.

Domande prima di modificare il codice di connettività

Ogni arco esterno a un ciclo richiede lo stesso trattamento?

Controlla la definizione precisa del grafo e la decisione presa dall'applicazione. Usa un caso di test con risultato atteso scritto indipendentemente. Rivedi le ipotesi del codice su orientamento, archi paralleli e cappi prima di trasformare una spiegazione informale del grafo in un requisito software.

Perché testare input disconnessi?

L'applicazione può contenere più componenti separate, ognuna con archi rilevanti propri. Una visita che parte da un nodo può non raggiungere le altre. Includi un caso con più componenti e confronta l'intero output, non solo il primo arco atteso.

Posso fornire archi ripetuti da dati importati?

Esamina prima il contratto degli input accettati. L'esempio prevede un grafo semplice e rifiuta i duplicati. Se i dati importati contengono archi ripetuti, decidi se il componente di importazione debba normalizzarli o segnalare un errore prima di chiedere modifiche alla procedura del grafo.

Cosa deve preservare il codice utilizzatore quando visualizza un arco?

Definisci la corrispondenza tra identificatori interni dei nodi ed etichette visibili agli utenti, oltre all'ordinamento necessario per un output stabile. Rivedi tali corrispondenze insieme alla modifica proposta. Una coppia di nodi interna corretta può diventare fuorviante se il chiamante la associa alle etichette sbagliate.

Scarica per Windows ↗

SpanSorbus · Aggiornato 2026-10-25