UUnionPebble
Środowisko programowania z AI

Grupowanie rozłącznych składowych

Grupuj numerowane węzły według nieskierowanych połączeń za pomocą zbiorów rozłącznych.

● ● ●UnionPebble●
Sposoby pracy · Grupowanie rozłącznych składowych ×
def components(count, edges):
    if type(count) is not int or not 0 <= count <= 10000:
        raise ValueError("node count")
    pairs = list(edges)
    for pair in pairs:
        if len(pair) != 2 or any(type(v) is not int or not 0 <= v < count for v in pair):
            raise ValueError("edge endpoint")
    parent = list(range(count))
    def find(x):
        while parent[x] != x:
            parent[x] = parent[parent[x]]
            x = parent[x]
        return x
    for a, b in pairs:
        parent[find(b)] = find(a)
    groups = {}
    for node in range(count): groups.setdefault(find(node), []).append(node)
    return sorted(groups.values())
✳Grupuj numerowane węzły według nieskierowanych połączeń za pomocą zbiorów rozłącznych.
✓ 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ź izolowane węzły, powtórzone krawędzie i pusty graf, odrzucając błędne końce przed łączeniem.

Sposoby pracy

Grupowanie rozłącznych składowych

Sposoby pracy ↗
Sposoby pracy
def components(count, edges):
    if type(count) is not int or not 0 <= count <= 10000:
        raise ValueError("node count")
    pairs = list(edges)
    for pair in pairs:
        if len(pair) != 2 or any(type(v) is not int or not 0 <= v < count for v in pair):
            raise ValueError("edge endpoint")
    parent = list(range(count))
    def find(x):
        while parent[x] != x:
            parent[x] = parent[parent[x]]
            x = parent[x]
        return x
    for a, b in pairs:
        parent[find(b)] = find(a)
    groups = {}
    for node in range(count): groups.setdefault(find(node), []).append(node)
    return sorted(groups.values())
Środowisko programowania z AI

Przekształć wymagania grupowania w zmianę kodu do przeglądu

UnionPebble to środowisko programistyczne AI dla Windows łączące wymaganie grupowania, jego kod źródłowy i odbiorców w jednej rozmowie o rozwoju. Zacznij od opisu, co aplikacja uznaje za połączone i co oczekuje otrzymać. Poproś model o analizę obecnej reprezentacji przed zaproponowaniem zmian kodu tworzącego grupy.

Jako konkretne zadanie użyj components.py do omówienia połączenia scalającego dwie wcześniej oddzielne grupy. Dodaj do danych testowych izolowany węzeł i określ oczekiwaną kolejność wyjścia. Przykład pomaga sformułować prośbę o zmianę bez zakładania, że matematycznie równoważna kolekcja spełni wymagania serializatora lub kodu wyświetlania aplikacji.

Oceń propozycję na tych granicach. Sprawdź akceptowane identyfikatory węzłów, nieprawidłowe krawędzie i pusty przypadek, a następnie uruchom odpowiednie kontrole projektu. Użyteczny wynik powinien wyjaśniać, dlaczego elementy należą do jednej grupy i dlaczego zwrócona struktura pasuje do odbiorcy. Nie włączaj niepowiązanych zmian przechowywania lub interfejsu do zadania naprawy grupowania.

Podłącz model przez obsługiwany punkt końcowy zgodny z OpenAI lub Anthropic, podając wymagane uwierzytelnienie. Jeśli usługa oferuje model AI z usuniętymi mechanizmami odmowy, jest on opcją dla sesji; ograniczenia nadal zależą od dostawcy. Dostępne narzędzia i kontekst również zależą od modelu i serwera, więc ogranicz przegląd do źródeł i dowodów, które sesja rzeczywiście może wykorzystać.

Grupowanie poza przykładem poprawnego przebiegu

Czy izolowane węzły należą do wyjścia?

Określ to oczekiwanie jawnie. Lista krawędzi może nigdy nie wymieniać izolowanego węzła, mimo że aplikacja wie o jego istnieniu. Podaj zadeklarowaną liczbę węzłów i izolowany przypadek, aby proponowany kod nie mógł po cichu usunąć takich elementów z wyniku.

Czy równoważna kolejność grup może zepsuć wywołującego?

Tak, jeśli odbiorca polega na stabilnej kolejności serializacji, porównania lub prezentacji. Określ, czy kolejność należy do interfejsu, a następnie sprawdź konwencję wyjścia. Sama równoważność matematyczna nie dowodzi zgodności z migawkami lub dalszym przetwarzaniem w projekcie.

Co ma się stać z końcem krawędzi poza zakresem?

Określ zachowanie odrzucania i sprawdź, gdzie jest sygnalizowane. Przykład waliduje identyfikatory względem zadeklarowanej liczby węzłów. Przejrzyj reakcję wywołującego, zamiast zakładać, że sam wyjątek przekazuje użyteczny błąd osobie dostarczającej dane grupowania.

Jak sprawdzić połączenie scalające grupy?

Niezależnie zapisz początkowe grupy i oczekiwany skład po scaleniu, uwzględniając grupę bez zmian. Przepuść dane przez zmieniony kod i osobno sprawdź kolejność. Daje to konkretny wynik przed i po bez powtarzania implementacji wewnątrz testu.

Pobierz dla Windows ↗

UnionPebble · Zaktualizowano 2026-10-25