SSpanSorbus
Espacio de programación con IA

Aristas puente no dirigidas

Encuentra puentes en un grafo simple no dirigido de hasta 32 vértices.

● ● ●SpanSorbus●
Flujos de trabajo · Aristas puente no dirigidas ×
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)
✳Encuentra puentes en un grafo simple no dirigido de hasta 32 vértices.
✓ CambiosRevisa antes de aplicar ↗
Vista ilustrativa
01

Revisa antes de aplicar

Compara el comportamiento real con el resultado esperado. Si una prueba falla, investiga la causa antes de hacer más cambios.

02

Modelos

Configura un endpoint compatible con OpenAI o Anthropic usando la URL base y, si hace falta, una clave API. Prueba la conexión. Un servidor local debe estar en ejecución; las herramientas remotas pueden enviar datos por separado.

03

Proyecto

Prueba componentes desconectados y ciclos, rechazando aristas duplicadas, bucles y extremos inválidos sin cambiar la entrada.

Flujos de trabajo

Aristas puente no dirigidas

Flujos de trabajo ↗
Flujos de trabajo
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)
Espacio de programación con IA

Relaciona los resultados del grafo con una decisión de la aplicación

SpanSorbus es un entorno de programación para Windows que permite examinar lógica de conectividad en el contexto de archivos de código reales. Empieza por describir la decisión que toma tu aplicación a partir del resultado del grafo. Pide al modelo conectado que examine la representación de entrada y su consumidor antes de solicitar un cambio en el recorrido o la salida.

Una tarea útil podría usar bridge_edges.py para investigar una arista cuya eliminación separa una parte conexa de un caso de prueba. Incluye un grafo con un ciclo como comparación e indica la lista de aristas esperada. Revisa los supuestos de grafo simple no dirigido junto con la implementación para que el cambio propuesto no acepte silenciosamente otro tipo de entrada.

El trabajo de software continúa después del retorno de la rutina. Examina cómo el consumidor nombra nodos, presenta aristas y gestiona datos rechazados, y ejecuta las comprobaciones del proyecto con casos desconectados y vacíos. Mantén la revisión vinculada a esos resultados observables. Una explicación correcta del grafo no demuestra que la aplicación transforme sus datos reales en la representación esperada.

SpanSorbus se conecta mediante endpoints compatibles con OpenAI o de Anthropic admitidos, con credenciales cuando se requieran. Elige un modelo de IA sin censura donde el endpoint lo proporcione, comprobando las restricciones y las herramientas disponibles del proveedor. Los límites de contexto dependen del modelo y del servidor, así que aporta un caso acotado y los consumidores pertinentes para una conversación de programación enfocada.

Preguntas antes de cambiar código de conectividad

¿Necesitan el mismo tratamiento todas las aristas que no están en un ciclo?

Comprueba la definición precisa del grafo y la decisión que toma tu aplicación. Utiliza un caso cuyo resultado esperado hayas escrito independientemente. Revisa los supuestos del código sobre dirección, aristas paralelas y bucles antes de trasladar una explicación informal de grafos a un requisito de software.

¿Por qué probar entradas desconectadas?

La aplicación puede contener varios componentes separados, cada uno con sus aristas pertinentes. Un recorrido que empiece en un solo nodo puede omitir los demás. Incluye un caso con más de un componente y compara la salida completa, no solo la primera arista esperada.

¿Puedo proporcionar aristas repetidas procedentes de datos importados?

Examina primero el contrato de entrada admitida. El ejemplo espera un grafo simple y rechaza duplicados. Si los datos importados contienen aristas repetidas, decide si el importador debe normalizarlas o informar de un error antes de pedir cambios en la rutina del grafo.

¿Qué debe conservar el consumidor al mostrar una arista?

Define la correspondencia entre identificadores internos de nodos y etiquetas visibles, además del orden necesario para una salida estable. Revisa esas correspondencias con el cambio propuesto. Una pareja interna correcta puede convertirse en un resultado engañoso si el consumidor la asocia con etiquetas equivocadas.

Descargar para Windows ↗

SpanSorbus · Actualizado 2026-10-25