HHopwise
Робоче середовище з ШІ для коду

Найкоротші відстані в орієнтованому графі

Обчисліть найкоротші відстані напрямленими ребрами від вершини графа з кількістю вершин від 1 до 1000.

● ● ●Hopwise●
Сценарії · Найкоротші відстані в орієнтованому графі ×
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
✳Найкоротші відстані в орієнтованому графі
✓ ЗміниПеревірте перед застосуванням ↗
Ілюстрація робочого середовища
01

Моделі

Налаштуйте OpenAI-сумісний або Anthropic endpoint із базовою URL-адресою та API-ключем, якщо він потрібен. Перевірте з’єднання. Локальний сервер моделі має працювати; віддалені інструменти можуть окремо передавати дані.

02

Проєкт

Перевірте цикли, повторні ребра й недосяжні вершини, відхиляючи порожній граф та хибні кінці до обходу.

03

Перевірте перед застосуванням

Порівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами.

Сценарії

Найкоротші відстані в орієнтованому графі

Сценарії ↗
Сценарії
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
Робоче середовище з ШІ для коду

Збережіть зміст результатів графа для застосунку

Результат графа корисний лише тоді, коли код виклику розуміє значення кожного елемента. Hopwise надає коду графів середовище програмування з ШІ у Windows, пов’язуючи код із розмовою про його контракт. Почніть із представлення вхідних даних і способу відображення чи використання результату в застосунку, а не просіть ізольованої заміни алгоритму.

Для завдання найменшої кількості переходів покажіть малий орієнтований граф із досяжними й недосяжними вершинами. Попросіть підключену модель перевірити, як реалізація відрізняє початкову вершину від вершини без шляху. Додайте цикл, щоб перевірка охоплювала повторне виявлення, а не лише найпростіший прямий ланцюжок.

Далі перевірте межу, на якій дані графа входять у функцію. Неправильні посилання на вершини мають оброблятися за свідомою політикою, а напрямок має відповідати змісту ребра в застосунку. Перевірте запропоновані правки разом із кодом споживача й запустіть тести точних результатів для кожної вершини. Зберігайте видимою в інтерфейсі обробку недосяжності після обчислення.

Hopwise підтримує сумісні кінцеві точки OpenAI або Anthropic, зокрема доступну модель ШІ без цензури. Фактична поведінка відповідей, межі контексту й інструменти залежать від конфігурації. Середовище підтримує дослідження; дані ваших тестів графа й інтеграційних тестів визначають, чи готова зміна до збереження.

Зміст результатів графа для застосунку — питання перед редагуванням

Який граф використати для пояснення проблеми?

Оберіть малий орієнтований приклад із циклом, недосяжною вершиною та чітко позначеним початком. Запишіть очікуваний результат для кожної вершини. Це полегшує перевірку напрямку й семантики відсутнього шляху порівняно з великим робочим графом.

Навіщо відрізняти нуль переходів від недосяжності?

Нуль описує відстань початкової вершини до себе, а недосяжність означає, що за контрактом графа шлях не знайдено. Якщо код виклику плутає їх, інтерфейс може показати неіснуючий зв’язок. Перевіряйте представлення результату разом із його споживачами.

Чи можна використати кількість переходів для зважених шляхів?

Лише коли для завдання кожне ребро має однакову вартість. Якщо ваги важливі, поясніть цю вимогу перед запитом змін. Реалізацію найменшої кількості переходів не слід подавати як розв’язання іншої задачі оптимізації.

Де обробляти неправильні посилання на вершини?

Визначте політику на межі введення й дослідіть наявний код викликів. Попросіть модель зберегти чіткий шлях відхилення або валідації. Тести мають містити неправильні посилання, щоб випадкова поведінка індексування не стала контрактом застосунку.

Завантажити для Windows ↗

Hopwise · Оновлено 2026-10-25