SSpanSorbus
Środowisko programowania z AI

Mosty grafów nieskierowanych

Znajdź mosty prostego grafu nieskierowanego o najwyżej 32 wierzchołkach.

● ● ●SpanSorbus●
Sposoby pracy · Mosty grafów nieskierowanych ×
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)
✳Znajdź mosty prostego grafu nieskierowanego o najwyżej 32 wierzchołkach.
✓ ZmianySprawdź przed zastosowaniem ↗
Ilustracja środowiska
01

Sprawdź przed zastosowaniem

Porównaj rzeczywiste zachowanie z oczekiwanym wynikiem. Jeśli sprawdzenie się nie powiedzie, wyjaśnij przyczynę przed kolejnymi zmianami.

02

Modele

Dodaj endpoint zgodny z OpenAI lub Anthropic, podając bazowy URL i klucz API, jeśli jest wymagany. Sprawdź połączenie. Lokalny serwer modelu musi działać; zdalne narzędzia mogą przesyłać dane oddzielnie.

03

Projekt

Sprawdź rozłączne składowe i cykle, odrzucając powtórzone krawędzie, pętle i błędne końce bez zmiany wejścia.

Sposoby pracy

Mosty grafów nieskierowanych

Sposoby pracy ↗
Sposoby pracy
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)
Środowisko programowania z AI

Powiąż wyniki grafu z decyzją podejmowaną przez aplikację

SpanSorbus to środowisko programowania dla Windows do badania logiki spójności w kontekście rzeczywistych plików źródłowych. Zacznij od opisania decyzji, którą aplikacja podejmuje na podstawie wyniku grafu. Poproś podłączony model o sprawdzenie reprezentacji wejścia i jej odbiorcy przed zleceniem zmiany przejścia grafu lub wyjścia.

Przydatne zadanie może wykorzystywać bridge_edges.py do zbadania krawędzi, której usunięcie rozdziela spójną część danych testowych. Dodaj dla porównania graf z cyklem i określ oczekiwaną listę krawędzi. Przejrzyj założenia grafu prostego i nieskierowanego obok implementacji, aby proponowana zmiana nie przyjmowała po cichu innego rodzaju wejścia.

Praca nad oprogramowaniem trwa po powrocie z procedury. Sprawdź, jak kod wywołujący nazywa węzły, prezentuje krawędzie i obsługuje odrzucone dane, a następnie uruchom kontrole projektu z niespójnymi i pustymi grafami testowymi. Powiąż przegląd z tymi obserwowalnymi wynikami. Poprawne wyjaśnienie grafu nie dowodzi, że aplikacja mapuje rzeczywiste dane na oczekiwaną reprezentację.

SpanSorbus łączy się przez obsługiwane punkty końcowe zgodne z OpenAI lub Anthropic, z danymi uwierzytelniającymi, gdy są wymagane. Wybierz model AI bez cenzury, jeśli punkt końcowy go udostępnia, sprawdzając ograniczenia dostawcy i dostępne narzędzia. Limity kontekstu zależą od modelu i serwera, więc dostarcz ograniczony zestaw danych testowych i odpowiednich odbiorców, aby skupić rozmowę o kodzie.

Pytania przed zmianą kodu spójności

Czy każdą krawędź poza cyklem należy traktować tak samo?

Sprawdź dokładną definicję grafu i decyzję podejmowaną przez aplikację. Użyj danych testowych z niezależnie zapisanym oczekiwanym wynikiem. Przejrzyj założenia kodu dotyczące kierunku, krawędzi równoległych i pętli własnych, zanim przeniesiesz nieformalne wyjaśnienie grafu na wymaganie oprogramowania.

Dlaczego testować niespójne wejście?

Aplikacja może zawierać kilka oddzielnych składowych, z których każda ma własne istotne krawędzie. Przejście zaczynające się od jednego węzła może pominąć pozostałe. Dodaj graf testowy z więcej niż jedną składową i porównaj całe wyjście, a nie tylko pierwszą oczekiwaną krawędź.

Czy mogę przekazać powtórzone krawędzie z importowanych danych?

Najpierw sprawdź kontrakt przyjmowanego wejścia. Przykład oczekuje grafu prostego i odrzuca duplikaty. Jeśli importowane dane zawierają powtórzone krawędzie, zdecyduj, czy importer powinien je normalizować, czy zgłaszać błąd, zanim poprosisz o zmiany procedury grafowej.

Co odbiorca powinien zachować przy wyświetlaniu krawędzi?

Zdefiniuj mapowanie wewnętrznych identyfikatorów węzłów na etykiety widoczne dla użytkownika oraz kolejność potrzebną do stabilnego wyjścia. Przejrzyj te mapowania wraz z proponowaną edycją. Poprawna wewnętrzna para krawędzi nadal może dawać mylący wynik, jeśli kod wywołujący skojarzy ją z niewłaściwymi etykietami.

Pobierz dla Windows ↗

SpanSorbus · Zaktualizowano 2026-10-25