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

Nejkratší orientované vzdálenosti v hranách

Spočítej nejkratší orientované vzdálenosti v hranách od vrcholu grafu s 1 až 1000 vrcholy.

● ● ●Hopwise●
Pracovní postupy · Nejkratší orientované vzdálenosti v hranách ×
from collections import deque

def hop_distances(graph, start):
    if type(graph) is not list or not 1 <= len(graph) <= 1000:
        raise ValueError("graph.size")
    n = len(graph)
    if type(start) is not int or not 0 <= start < n:
        raise ValueError("graph.start")
    if any(type(row) is not list or any(type(v) is not int or
           not 0 <= v < n for v in row) for row in graph):
        raise ValueError("graph.edges")
    distances = [None]*n
    distances[start] = 0
    queue = deque([start])
    while queue:
        u = queue.popleft()
        for v in graph[u]:
            if distances[v] is None:
                distances[v] = distances[u]+1
                queue.append(v)
    return distances
✳Nejkratší orientované vzdálenosti v hranách
✓ ZměnyPřed použitím zkontrolujte ↗
Ilustrace pracovního prostředí
01

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

02

Projekt

Ověř cykly, opakované hrany a nedosažitelné vrcholy a odmítni prázdný graf či neplatné konce před průchodem.

03

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.

Pracovní postupy

Nejkratší orientované vzdálenosti v hranách

Pracovní postupy ↗
Pracovní postupy
from collections import deque

def hop_distances(graph, start):
    if type(graph) is not list or not 1 <= len(graph) <= 1000:
        raise ValueError("graph.size")
    n = len(graph)
    if type(start) is not int or not 0 <= start < n:
        raise ValueError("graph.start")
    if any(type(row) is not list or any(type(v) is not int or
           not 0 <= v < n for v in row) for row in graph):
        raise ValueError("graph.edges")
    distances = [None]*n
    distances[start] = 0
    queue = deque([start])
    while queue:
        u = queue.popleft()
        for v in graph[u]:
            if distances[v] is None:
                distances[v] = distances[u]+1
                queue.append(v)
    return distances
Pracovní prostředí s AI pro kód

Zachovejte smysl výsledků grafu pro aplikaci

Výsledek grafového výpočtu je užitečný jen tehdy, když volající rozumí významu každé hodnoty. Hopwise poskytuje grafovému kódu programovací prostředí s AI pro Windows a propojuje zdrojový kód s konverzací o jeho podmínkách. Začněte reprezentací vstupu a způsobem, jak aplikace výsledek zobrazuje nebo používá, místo požadavku na izolované nahrazení algoritmu.

Pro úlohu nejmenšího počtu hran ukažte malý orientovaný graf s dosažitelnými i nedosažitelnými vrcholy. Požádejte připojený model o kontrolu, jak implementace rozlišuje počáteční vrchol od vrcholu, do něhož cesta nevede. Přidejte cyklus, aby kontrola zahrnula opakované objevení i nejjednodušší dopředný řetězec.

Poté prověřte hranici, kde grafová data vstupují do funkce. Neplatné odkazy na vrcholy mají podléhat záměrnému pravidlu a orientace musí odpovídat významu hrany v aplikaci. Prověřte navržené úpravy spolu s přijímajícím kódem a spusťte případy ověřující přesné výsledky pro každý vrchol. Po výpočtu zachovejte v rozhraní patrné zpracování nedosažitelného stavu.

Hopwise podporuje kompatibilní koncové body OpenAI i koncové body Anthropic, včetně dostupného modelu AI bez cenzury. Skutečné chování odpovědí, limity kontextu a nástroje závisejí na této konfiguraci. Prostředí podporuje zkoumání; důkazy z grafových případů a integračních testů určují, zda je změna připravena k ponechání.

Smysluplné výsledky grafu pro aplikaci — otázky před úpravou

Jaký graf mám použít k vysvětlení problému?

Zvolte malý orientovaný příklad s cyklem, nedosažitelným vrcholem a jasně určeným začátkem. Zapište očekávaný výsledek pro každý vrchol. Směr i význam chybějící cesty tak lze prověřit snáze než ve velkém produkčním grafu.

Proč rozlišovat nula hran a nedosažitelnost?

Nula popisuje vzdálenost počátečního vrcholu od sebe samého, zatímco nedosažitelnost znamená, že podle pravidel grafu nebyla nalezena cesta. Pokud je volající zamění, rozhraní může zobrazit neexistující spojení. Prověřte návratovou reprezentaci společně s jejími příjemci.

Mohu počty hran použít pro vážené cesty?

Jen pokud každá hrana pro účely úlohy představuje stejnou cenu. Pokud záleží na vahách, vysvětlete tento požadavek před zadáním změn. Implementace nejmenšího počtu hran se nemá vydávat za řešení jiného optimalizačního cíle.

Kde se mají zpracovat neplatné odkazy na vrcholy?

Stanovte pravidlo na vstupní hranici a prozkoumejte stávající volající. Požádejte model o zachování jasné cesty odmítnutí nebo validace. Testy mají zahrnout chybné odkazy, aby se náhodné chování indexování nestalo pravidlem aplikace.

Stáhnout pro Windows ↗

Hopwise · Aktualizováno 2026-10-25