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

Silně souvislé orientované komponenty

Rozdělte orientovaný graf do 64 vrcholů na silně souvislé komponenty.

● ● ●ComponentWisp●
Pracovní postupy · Silně souvislé orientované komponenty ×
def strong_components(graph):
    if type(graph) is not list or len(graph) > 64:
        raise ValueError("scc.graph")
    n = len(graph)
    if any(type(row) is not set or any(type(v) is not int or not 0 <= v < n for v in row) for row in graph):
        raise ValueError("scc.edge")
    seen, order = set(), []
    for start in range(n):
        if start in seen:
            continue
        seen.add(start)
        stack = [(start, iter(sorted(graph[start])))]
        while stack:
            node, edges = stack[-1]
            target = next(edges, None)
            if target is None:
                order.append(node)
                stack.pop()
            elif target not in seen:
                seen.add(target)
                stack.append((target, iter(sorted(graph[target]))))
    reverse = [set() for _ in graph]
    for node, edges in enumerate(graph):
        for target in edges:
            reverse[target].add(node)
    seen, result = set(), []
    for start in reversed(order):
        if start in seen:
            continue
        group, pending = [], [start]
        seen.add(start)
        while pending:
            node = pending.pop()
            group.append(node)
            for target in reverse[node]-seen:
                seen.add(target)
                pending.append(target)
        result.append(sorted(group))
    return sorted(result)
✳Silně souvislé orientované komponenty
✓ ZměnyPřed použitím zkontrolujte ↗
Ilustrace pracovního prostředí
  1. 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.

  2. 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ě.

  3. Projekt

    Otestujte cykly, osamocené vrcholy a prázdný graf, odmítněte chybné členy bez změny množin sousednosti.

Pracovní postupy

Silně souvislé orientované komponenty

Pracovní postupy ↗
Pracovní postupy
def strong_components(graph):
    if type(graph) is not list or len(graph) > 64:
        raise ValueError("scc.graph")
    n = len(graph)
    if any(type(row) is not set or any(type(v) is not int or not 0 <= v < n for v in row) for row in graph):
        raise ValueError("scc.edge")
    seen, order = set(), []
    for start in range(n):
        if start in seen:
            continue
        seen.add(start)
        stack = [(start, iter(sorted(graph[start])))]
        while stack:
            node, edges = stack[-1]
            target = next(edges, None)
            if target is None:
                order.append(node)
                stack.pop()
            elif target not in seen:
                seen.add(target)
                stack.append((target, iter(sorted(graph[target]))))
    reverse = [set() for _ in graph]
    for node, edges in enumerate(graph):
        for target in edges:
            reverse[target].add(node)
    seen, result = set(), []
    for start in reversed(order):
        if start in seen:
            continue
        group, pending = [], [start]
        seen.add(start)
        while pending:
            node = pending.pop()
            group.append(node)
            for target in reverse[node]-seen:
                seen.add(target)
                pending.append(target)
        result.append(sorted(group))
    return sorted(result)
Pracovní prostředí s AI pro kód

Dejte skupinám závislostí význam využitelný aplikací

ComponentWisp je programovací prostředí s AI pro Windows pro vývojáře sledující vztahy v projektových datech a kódu. Do konverzace přineste reprezentaci grafu i příjemce, který potřebuje jeho skupiny. Před návrhem změny seskupování nechte asistenta prozkoumat význam orientované hrany. Výsledek je užitečný jen tehdy, když zachované vztahy odpovídají otázce, na kterou aplikace hledá odpověď.

Úloha kolem strong_components.py může zkoumat skupiny, jejichž vrcholy jsou navzájem dosažitelné orientovanými cestami. Pomocí malého příkladu závislostí odlište vzájemnou dosažitelnost od jednosměrného spojení a poté posuďte implementaci a pořadí výstupu. Používáte-li kód pro závislosti, výslovně určete mapování skutečných objektů na vrcholy; samotná pomocná funkce nemůže stanovit význam těchto závislostí.

Po přečtení návrhu spusťte kontroly projektu s cyklem, jednosměrným spojením a izolovanými vrcholy. Prozkoumejte příjemce a potvrďte konzistentní zacházení s výslednými skupinami. ComponentWisp se připojuje k podporovaným koncovým bodům kompatibilním s OpenAI nebo ke koncovým bodům Anthropic, podle potřeby s přihlašovacími údaji. Neomezené modely lze vybrat tam, kde jsou nabízeny; omezení, nástroje a limity kontextu určuje model a server. Ponechte význam hran a očekávané skupiny v konverzaci, aby další úpravy zachovaly stejný softwarový požadavek.

Otázky ke kódu seskupování závislostí

Stačí jednosměrná závislost ke spojení objektů do skupiny?

Ne u skupiny definované vzájemnou orientovanou dosažitelností. Stanovte zamýšlené pravidlo seskupování a přiložte jednosměrný příklad, aby navržená implementace omylem nepovažovala orientovaný vztah za neorientované spojení.

Jak mapovat skutečné objekty projektu na vrcholy?

Udržujte výslovné mapování, které příjemce může použít k výkladu výsledků. Prozkoumejte, co se stane při odstranění či změně pořadí objektů, a otestujte, že vrácené skupiny stále odkazují na zamýšlené objekty projektu.

Určuje seskupování závislostí pořadí provádění?

Odpovídá na jinou otázku. Aplikace může potřebovat další logiku pro seřazení skupin či zpracování cyklů. Tento požadavek určete zvlášť a prozkoumejte příslušného příjemce místo předpokladu, že rozdělení do skupin je úplným plánem provádění.

Proč do kontrol zahrnout izolované vrcholy?

Ověřují, že i objekty bez hran dostanou reprezentaci očekávanou aplikací. Kontrolujte výstup pomocné funkce i pohled příjemce, zejména pokud refaktoring vytváří mezistruktury procházením pouze existujících spojení.

Stáhnout pro Windows ↗

ComponentWisp · Aktualizováno 2026-10-25