UUnionPebble
Pracovní prostředí s AI pro kód

Seskupení disjunktních komponent

Seskupte očíslované uzly podle neorientovaných spojení pomocí disjunktních množin.

● ● ●UnionPebble●
Pracovní postupy · Seskupení disjunktních komponent ×
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())
✳Seskupte očíslované uzly podle neorientovaných spojení pomocí disjunktních množin.
✓ ZměnyPřed použitím zkontrolujte ↗
Ilustrace pracovního prostředí
01

Před použitím zkontrolujte

Porovnejte skutečné chování s očekávaným výsledkem. Pokud kontrola selže, před dalšími změnami zjistěte příčinu.

02

Modely

Nastavte endpoint kompatibilní s OpenAI nebo Anthropic pomocí základní URL a případného API klíče. Otestujte připojení. Lokální server modelu musí běžet; vzdálené nástroje mohou data odesílat samostatně.

03

Projekt

Ověřte izolované uzly, opakované hrany a prázdný graf a odmítněte neplatné konce před spojením.

Pracovní postupy

Seskupení disjunktních komponent

Pracovní postupy ↗
Pracovní postupy
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())
Pracovní prostředí s AI pro kód

Převeďte požadavky na seskupování na přezkoumatelnou softwarovou změnu

UnionPebble je prostředí pro programování s AI ve Windows, které spojuje požadavek na seskupování, jeho zdrojový kód a konzumenty do jedné vývojové konverzace. Začněte popisem toho, co aplikace považuje za propojené a co očekává jako výstup. Před návrhem změn kódu vytvářejícího skupiny požádejte model o kontrolu stávající reprezentace.

Jako konkrétní úkol použijte components.py k diskusi o spojení, které propojí dvě dříve oddělené skupiny. Do testovacího případu zahrňte izolovaný uzel a stanovte očekávané pořadí výstupu. Příklad pomáhá formulovat požadavek na změnu bez předpokladu, že matematicky ekvivalentní kolekce vyhoví serializátoru nebo zobrazovacímu kódu aplikace.

Návrh prověřte na těchto hranicích. Zkontrolujte přijímané identifikátory uzlů, neplatné hrany a prázdný případ a poté spusťte příslušné projektové kontroly. Užitečný výsledek má vysvětlit, proč členové patří k sobě i proč vracená struktura vyhovuje konzumentovi. Nesouvisející změny úložiště nebo rozhraní ponechte mimo požadavek určený k opravě seskupování.

Připojte model přes podporovaný koncový bod kompatibilní s OpenAI nebo Anthropic a v případě potřeby zadejte přihlašovací údaje. Nabízí-li služba abliterovaný model AI, je pro tuto práci možností; omezení zůstávají závislá na poskytovateli. Dostupné nástroje a kontext také závisí na modelu a serveru, proto kontrolu omezte na zdroje a podklady, které lze v dané relaci skutečně použít.

Seskupování nad rámec bezproblémového příkladu

Patří izolované uzly do výstupu?

Toto očekávání výslovně stanovte. Seznam hran nemusí izolovaný uzel vůbec zmiňovat, i když aplikace ví o jeho existenci. Zahrňte deklarovaný počet uzlů a test s izolovaným uzlem, aby navržený kód nemohl takové položky tiše vyřadit z výsledku.

Mohou ekvivalentní pořadí skupin narušit volající kód?

Ano, pokud konzument spoléhá na stabilní serializaci, porovnávání nebo pořadí zobrazení. Uveďte, zda je pořadí součástí rozhraní, a prověřte výstupní konvenci. Matematická ekvivalence sama nedokazuje kompatibilitu se snímky nebo následným zpracováním v projektu.

Co se má stát s koncovým uzlem mimo rozsah?

Definujte chování při odmítnutí vstupu a prověřte, kde se projeví. Příklad validuje identifikátory podle deklarovaného počtu uzlů. Zkontrolujte reakci volajícího, místo abyste předpokládali, že samotná výjimka sdělí dodavateli dat seskupování užitečnou chybu.

Jak ověřím spojení slučující skupiny?

Nezávisle zapište počáteční skupiny a očekávané členství po sloučení včetně neovlivněné skupiny. Spusťte test změněným kódem a pořadí prověřte zvlášť. Kontrola tak získá konkrétní výsledek před a po změně bez opakování implementace uvnitř testu.

Stáhnout pro Windows ↗

UnionPebble · Aktualizováno 2026-10-25