SSpanSorbus
Espace de développement avec IA

Arêtes ponts non orientées

Trouvez les ponts d’un graphe simple non orienté d’au plus 32 sommets.

● ● ●SpanSorbus●
Méthodes de travail · Arêtes ponts non orientées ×
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)
✳Trouvez les ponts d’un graphe simple non orienté d’au plus 32 sommets.
✓ ModificationsVérifiez avant d’appliquer ↗
Illustration de l’espace de travail
01

Vérifiez avant d’appliquer

Comparez le comportement observé au résultat attendu. Si une vérification échoue, cherchez la cause avant de poursuivre les modifications.

02

Modèles

Configurez un endpoint compatible OpenAI ou Anthropic avec son URL de base et une clé API si nécessaire. Testez la connexion. Un serveur local doit fonctionner ; les outils distants peuvent transmettre des données séparément.

03

Projet

Testez composantes séparées et cycles, en rejetant doublons, boucles et extrémités invalides sans modifier l’entrée.

Méthodes de travail

Arêtes ponts non orientées

Méthodes de travail ↗
Méthodes de travail
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)
Espace de développement avec IA

Reliez les résultats du graphe aux décisions de l’application

SpanSorbus est un espace de programmation pour Windows permettant d’examiner la logique de connectivité dans le contexte de véritables fichiers source. Commencez par décrire la décision que prend l’application à partir du résultat du graphe. Demandez au modèle connecté d’examiner la représentation d’entrée et son consommateur avant de demander une modification du parcours ou de la sortie.

Une tâche utile pourrait utiliser bridge_edges.py pour examiner une arête dont la suppression sépare une partie connexe d’un graphe de test. Incluez un graphe contenant un cycle à titre de comparaison et précisez la liste d’arêtes attendue. Examinez les hypothèses de graphe simple non orienté avec l’implémentation pour que la modification proposée n’accepte pas discrètement un autre type d’entrée.

Le travail logiciel continue après le retour de la routine. Examinez comment l’appelant nomme les nœuds, présente les arêtes et traite les données rejetées, puis exécutez les vérifications du projet avec des graphes non connexes et vides. Liez l’examen à ces résultats observables. Une explication correcte du graphe ne prouve pas que l’application transforme ses données réelles en la représentation attendue.

SpanSorbus se connecte via des points de terminaison compatibles OpenAI ou Anthropic pris en charge avec des identifiants si nécessaire. Choisissez un modèle d’IA sans censure si le point de terminaison en fournit un, tout en vérifiant les restrictions du fournisseur et les outils disponibles. Les limites de contexte dépendent du modèle et du serveur ; fournissez donc un jeu d’essai borné et les consommateurs pertinents pour une conversation de programmation ciblée.

Questions avant de modifier le code de connectivité

Chaque arête hors d’un cycle exige-t-elle le même traitement ?

Vérifiez la définition précise du graphe et la décision prise par l’application. Utilisez un jeu d’essai dont le résultat attendu est établi indépendamment. Examinez les hypothèses du code sur l’orientation, les arêtes parallèles et les boucles avant de traduire une explication informelle du graphe en exigence logicielle.

Pourquoi tester une entrée non connexe ?

L’application peut contenir plusieurs composantes séparées, chacune avec ses arêtes pertinentes. Un parcours démarrant d’un seul nœud peut manquer les autres. Incluez un graphe avec plusieurs composantes et comparez la sortie complète, pas seulement la première arête attendue.

Puis-je fournir des arêtes répétées issues de données importées ?

Examinez d’abord le contrat d’entrée. L’exemple attend un graphe simple et rejette les doublons. Si les données importées contiennent des arêtes répétées, décidez si l’importateur doit les normaliser ou signaler une erreur avant de demander des modifications de la routine de graphe.

Que doit préserver le consommateur lors de l’affichage d’une arête ?

Définissez la correspondance entre identifiants internes des nœuds et libellés visibles, ainsi que l’ordre nécessaire à une sortie stable. Examinez ces correspondances avec la modification proposée. Une paire correcte d’identifiants internes de nœuds peut encore donner un résultat trompeur si l’appelant lui associe de mauvais libellés.

Télécharger pour Windows ↗

SpanSorbus · Mis à jour 2026-10-25