UUnionPebble
AI-werkruimte voor code

Groeperen van losse componenten

Groepeer genummerde knopen via ongerichte verbindingen met disjuncte verzamelingen.

● ● ●UnionPebble●
Werkprocessen · Groeperen van losse componenten ×
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())
✳Groepeer genummerde knopen via ongerichte verbindingen met disjuncte verzamelingen.
✓ WijzigingenControleer vóór het toepassen ↗
Illustratie van de werkruimte
01

Controleer vóór het toepassen

Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen.

02

Modellen

Stel een OpenAI-compatibel of Anthropic-endpoint in met de basis-URL en zo nodig een API-sleutel. Test de verbinding. Een lokale modelserver moet actief zijn; externe hulpmiddelen kunnen apart gegevens versturen.

03

Project

Test losse knopen, herhaalde kanten en een lege graaf en weiger ongeldige eindpunten vóór enige samenvoeging.

Werkprocessen

Groeperen van losse componenten

Werkprocessen ↗
Werkprocessen
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())
AI-werkruimte voor code

Maak groeperingseisen tot een beoordeelbare softwarewijziging

UnionPebble is een AI-programmeeromgeving voor Windows om een groeperingseis, de broncode en de afnemers samen te brengen in één ontwikkelgesprek. Beschrijf eerst wat de toepassing als verbonden beschouwt en wat zij verwacht te ontvangen. Vraag het model de bestaande representatie te inspecteren voordat het wijzigingen voorstelt in de code die groepen maakt.

Gebruik components.py als concrete taak om een verbinding te bespreken die twee eerder gescheiden groepen samenvoegt. Neem een geïsoleerde knoop op in het testgeval en vermeld de verwachte uitvoervolgorde. Het voorbeeld helpt een wijzigingsverzoek te formuleren zonder aan te nemen dat een wiskundig equivalente collectie voldoet aan de serialisatie- of weergavecode van de toepassing.

Beoordeel het voorstel op die grenzen. Controleer geaccepteerde knoopidentificaties, ongeldige verbindingen en het lege geval en voer de relevante projectcontroles uit. Een bruikbaar resultaat legt zowel uit waarom leden bij elkaar horen als waarom de geretourneerde structuur bij de afnemer past. Houd ongerelateerde opslag- of interfacewijzigingen buiten een verzoek dat groeperingsgedrag moet corrigeren.

Verbind een model via een ondersteund OpenAI-compatibel of Anthropic-endpoint, waar vereist met toegangsgegevens. Als die dienst een abliterated AI-model aanbiedt, is dat een optie voor de sessie; beperkingen blijven providerafhankelijk. Beschikbare tools en context hangen ook af van model en server, dus beperk de inspectie tot broncode en bewijs die de sessie werkelijk kan gebruiken.

Groeperingswerk voorbij een geslaagd standaardvoorbeeld

Horen geïsoleerde knopen in de uitvoer?

Leg die verwachting expliciet vast. Een lijst verbindingen noemt een geïsoleerde knoop mogelijk nooit, hoewel de toepassing weet dat deze bestaat. Geef het opgegeven aantal knopen en een testgeval met een geïsoleerde knoop zodat de code zulke elementen niet stilzwijgend uit het resultaat kan verwijderen.

Kunnen equivalente groepsvolgorden een aanroeper breken?

Ja, als een afnemer op stabiele serialisatie, vergelijking of weergavevolgorde vertrouwt. Vermeld of ordening onderdeel van de interface is en inspecteer de uitvoerconventie. Wiskundige gelijkwaardigheid bewijst op zichzelf geen compatibiliteit met snapshots of verdere projectverwerking.

Wat moet er gebeuren met een eindpunt buiten het bereik?

Definieer het afwijzingsgedrag en inspecteer waar het zichtbaar wordt. Het voorbeeld valideert identificaties tegen het opgegeven aantal knopen. Beoordeel de reactie van de aanroeper in plaats van aan te nemen dat alleen een uitzondering een bruikbare fout meldt aan de leverancier van de groeperingsgegevens.

Hoe controleer ik een verbinding die groepen samenvoegt?

Schrijf de begingroepen en het verwachte samengevoegde lidmaatschap onafhankelijk op, inclusief een onaangetaste groep. Voer het testgeval door de gewijzigde code en inspecteer de ordening apart. Zo krijgt de beoordeling een concreet voor-en-naresultaat zonder de implementatie in de test te herhalen.

Download voor Windows ↗

UnionPebble · Bijgewerkt 2026-10-25