FForellin
Рабочая среда с ИИ для кода

Минимальные остовные леса

Forellin переносит проверку взвешенного графа в беседу о проекте Windows. Попросите совместимую модель разобрать выбор леса и несвязные данные, затем проверьте предложенные рёбра до принятия кода.

● ● ●Forellin●
Конкретная отправная точка · Минимальные остовные леса ×
def spanning_forest(count, edges):
    if type(count) is not int or not 0 <= count <= 64 or type(edges) is not list or len(edges) > 1024:
        raise ValueError("forest.input")
    ordered = []
    for edge in edges:
        if type(edge) not in (list, tuple) or len(edge) != 3 or any(type(x) is not int for x in edge):
            raise ValueError("forest.edge")
        a, b, weight = edge
        if not 0 <= a < count or not 0 <= b < count or abs(weight) > 10**9:
            raise ValueError("forest.bounds")
        ordered.append((weight, min(a, b), max(a, b)))
    parent = list(range(count))
    def root(node):
        while parent[node] != node:
            parent[node] = parent[parent[node]]
            node = parent[node]
        return node
    selected, total = [], 0
    for weight, a, b in sorted(ordered):
        x, y = root(a), root(b)
        if x != y:
            parent[x] = y
            selected.append((a, b, weight))
            total += weight
    return total, selected
✳Минимальные остовные леса
✓ ИзмененияПроверьте перед применением ↗
Иллюстрация рабочей среды
  1. Проверьте перед применением

    Сравните фактическое поведение с ожидаемым. Если проверка не проходит, разберитесь в причине перед следующими изменениями.

  2. Подключение

    Базовый URL, учётные данные и доступный сервер.

  3. Проект

    Проверьте раздельные узлы, параллельные рёбра, петли и устойчивый выбор при равенстве, отклоняя неверные индексы и логические значения без изменения ввода.

Сценарии

Минимальные остовные леса

Сценарии ↗
Конкретная отправная точка
def spanning_forest(count, edges):
    if type(count) is not int or not 0 <= count <= 64 or type(edges) is not list or len(edges) > 1024:
        raise ValueError("forest.input")
    ordered = []
    for edge in edges:
        if type(edge) not in (list, tuple) or len(edge) != 3 or any(type(x) is not int for x in edge):
            raise ValueError("forest.edge")
        a, b, weight = edge
        if not 0 <= a < count or not 0 <= b < count or abs(weight) > 10**9:
            raise ValueError("forest.bounds")
        ordered.append((weight, min(a, b), max(a, b)))
    parent = list(range(count))
    def root(node):
        while parent[node] != node:
            parent[node] = parent[parent[node]]
            node = parent[node]
        return node
    selected, total = [], 0
    for weight, a, b in sorted(ordered):
        x, y = root(a), root(b)
        if x != y:
            parent[x] = y
            selected.append((a, b, weight))
            total += weight
    return total, selected
Рабочая среда с ИИ для кода

Включите несвязный ввод в контракт обработки графов

Forellin предоставляет разработчикам рабочую среду программирования с ИИ в Windows для изучения обработки графов вместе с приложением, которое от неё зависит. Начните обсуждение проекта с представления ввода и результата, нужного вызывающему коду. Попросите помощника до предложения изменений изучить обработку отсутствующих связей, повторяющихся рёбер и порядка вывода. Эти решения формируют функцию не меньше основного вычисления.

Контекст spanning_forest.py подсказывает задачу, где несвязные вершины ожидаемы, а не считаются неудачной попыткой соединить всё. Можно попросить модель объяснить выбор рёбер и связь итоговой суммы с ними. Проверьте ответ на небольшом графе, проверяемом вручную, затем запросите конкретное исправление, если контракт результата или валидация требуют изменений.

Запустите проверки проекта на связном и несвязном вводе и изучите представление изолированных вершин в приложении. Если допустимы несколько результатов, согласуйте, важен ли детерминированный выбор потребителю. Forellin принимает поддерживаемые конечные точки, совместимые с OpenAI, или Anthropic с учётными данными при необходимости. ИИ-модель без фильтрации можно выбрать, если она предлагается, но ограничения модели, инструменты и объём контекста зависят от настроенного сервиса. Рабочая среда помогает исследованию; принятие кода подтверждают примеры графов и результаты тестов.

Вопросы об изменении обработки графов

Всегда ли нужно отклонять несвязный ввод?

Только если приложению нужна единая связная структура. Для результата в виде леса несвязные компоненты могут быть допустимы. Укажите различие до запроса исправления, чтобы помощник не создавал связей, которых не было во входе.

Что делать, если разные наборы рёбер дают одинаковую сумму?

Решите, приемлем ли любой допустимый оптимум или потребителю нужен повторяемый выбор. Если важен порядок или разрешение равенства, включите это в ожидаемый результат и явно протестируйте, не полагаясь на случайный порядок ввода.

Как проверить итоговую сумму?

Возьмите небольшой пример и независимо сравните выбранные рёбра с суммой их весов. Также выясните, нужен ли вызывающему коду только итог или выбранная структура: эти результаты обеспечивают разное поведение приложения.

Зачем отдельно тестировать изолированные вершины?

Они могут исчезнуть из результата, содержащего только рёбра, хотя присутствуют во входе. Проверьте окружающее представление и решите, как приложение должно сохранять или отображать эти вершины, не предполагая, что выбранные рёбра описывают каждую вершину.

Скачать для Windows ↗

Forellin · Обновлено 2026-10-25