HHopwise
Spațiu de programare cu AI

Distanțe minime în arce orientate

Calculează distanțe minime în arce orientate de la un vârf într-un graf cu 1 până la 1000 vârfuri.

● ● ●Hopwise●
Fluxuri de lucru · Distanțe minime în arce orientate ×
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
✳Distanțe minime în arce orientate
✓ ModificăriVerifică înainte de aplicare ↗
Ilustrarea spațiului de lucru
01

Modele

Configurează un endpoint compatibil OpenAI sau Anthropic cu URL-ul de bază și cheia API, dacă este necesară. Testează conexiunea. Serverul local trebuie să ruleze; instrumentele externe pot transmite date separat.

02

Proiect

Testează cicluri, arce repetate și vârfuri inaccesibile, respingând un graf gol sau capete invalide înaintea parcurgerii.

03

Verifică înainte de aplicare

Compară comportamentul real cu rezultatul așteptat. Dacă o verificare eșuează, cercetează cauza înainte de alte modificări.

Fluxuri de lucru

Distanțe minime în arce orientate

Fluxuri de lucru ↗
Fluxuri de lucru
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
Spațiu de programare cu AI

Păstrează sensul rezultatelor grafului pentru aplicație

Un rezultat al unui graf este util doar când apelantul înțelege ce înseamnă fiecare valoare. Hopwise oferă codului pentru grafuri un spațiu de lucru Windows pentru programare cu IA, legând sursa de o conversație despre contractul ei. Începe cu reprezentarea intrării și modul în care aplicația afișează sau folosește rezultatul, în loc să ceri înlocuirea izolată a unui algoritm.

Pentru o sarcină privind numărul minim de muchii parcurse, prezintă un graf orientat mic, cu vârfuri accesibile și inaccesibile. Cere modelului conectat să inspecteze cum distinge implementarea vârful de pornire de un vârf către care nu există drum. Include un ciclu, astfel încât analiza să ia în calcul descoperirea repetată, nu doar cel mai simplu lanț înainte.

Apoi inspectează limita la care datele grafului intră în funcție. Referințele nevalide la vârfuri trebuie să urmeze o politică deliberată, iar orientarea trebuie să corespundă sensului unei muchii în aplicație. Examinează modificările propuse împreună cu codul consumator, apoi rulează cazuri de test care verifică rezultate exacte pentru fiecare vârf. Păstrează vizibilă în interfață tratarea stării inaccesibile după calcul.

Hopwise acceptă endpointuri compatibile OpenAI sau Anthropic, inclusiv un model IA fără cenzură disponibil. Comportamentul efectiv al răspunsurilor, limitele contextului și instrumentele depind de configurație. Spațiul de lucru sprijină investigația; dovezile din cazurile de test ale grafului și testele de integrare determină dacă modificarea poate fi păstrată.

Sensul rezultatelor grafului pentru aplicație — întrebări înainte de editare

Ce graf să folosesc pentru a explica problema?

Alege un exemplu orientat mic, cu un ciclu, un vârf inaccesibil și un punct de pornire identificat clar. Scrie rezultatul așteptat pentru fiecare vârf. Astfel, orientarea și sensul absenței unui drum sunt mai ușor de inspectat decât într-un graf mare de producție.

De ce să disting zero muchii parcurse de inaccesibilitate?

Zero descrie distanța vârfului de pornire față de el însuși, iar inaccesibil înseamnă că nu s-a găsit un drum conform contractului grafului. Dacă apelanții le confundă, interfața poate afișa o conexiune inexistentă. Examinează împreună reprezentarea returnată și consumatorii ei.

Pot folosi numărul de muchii pentru drumuri ponderate?

Numai când fiecare muchie reprezintă același cost în scopul sarcinii. Dacă ponderile contează, explică cerința înainte de a solicita modificări. O implementare care minimizează numărul de muchii nu trebuie prezentată ca satisfăcând un alt obiectiv de optimizare.

Unde trebuie tratate referințele nevalide la vârfuri?

Stabilește politica la limita de intrare și examinează apelanții existenți. Cere modelului să păstreze un flux clar de respingere sau validare. Testele trebuie să includă referințe malformate, astfel încât comportamentul accidental de indexare să nu devină contractul aplicației.

Descarcă pentru Windows ↗

Hopwise · Actualizat 2026-10-25