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

Группировка непересекающихся компонент

Новая связь меняет состав группы узлов. UnionPebble помогает разбирать непересекающиеся множества по исходникам и небольшим графам, сохраняя предложения модели доступными для проверки кода.

● ● ●UnionPebble●
Конкретная отправная точка · Группировка непересекающихся компонент ×
def components(count, edges):
    if type(count) is not int or not 0 <= count <= 10000:
        raise ValueError("node count")
    pairs = list(edges)
    for pair in pairs:
        if len(pair) != 2 or any(type(v) is not int or not 0 <= v < count for v in pair):
            raise ValueError("edge endpoint")
    parent = list(range(count))
    def find(x):
        while parent[x] != x:
            parent[x] = parent[parent[x]]
            x = parent[x]
        return x
    for a, b in pairs:
        parent[find(b)] = find(a)
    groups = {}
    for node in range(count): groups.setdefault(find(node), []).append(node)
    return sorted(groups.values())
✳Сгруппируйте нумерованные узлы по неориентированным связям через систему непересекающихся множеств.
✓ ИзмененияПроверьте перед применением ↗
Иллюстрация рабочей среды
01

Проверьте перед применением

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

02

Подключение

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

03

Проект

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

Сценарии

Группировка непересекающихся компонент

Сценарии ↗
Конкретная отправная точка
def components(count, edges):
    if type(count) is not int or not 0 <= count <= 10000:
        raise ValueError("node count")
    pairs = list(edges)
    for pair in pairs:
        if len(pair) != 2 or any(type(v) is not int or not 0 <= v < count for v in pair):
            raise ValueError("edge endpoint")
    parent = list(range(count))
    def find(x):
        while parent[x] != x:
            parent[x] = parent[parent[x]]
            x = parent[x]
        return x
    for a, b in pairs:
        parent[find(b)] = find(a)
    groups = {}
    for node in range(count): groups.setdefault(find(node), []).append(node)
    return sorted(groups.values())
Рабочая среда с ИИ для кода

Превратите требования группировки в проверяемое изменение программы

UnionPebble — среда программирования с ИИ для Windows, объединяющая требования группировки, исходный код и его потребителей в одном обсуждении разработки. Сначала опишите, что приложение считает связанным и какой результат ожидает. Попросите модель изучить существующее представление до предложений изменить код создания групп.

Для конкретной задачи используйте components.py, чтобы обсудить связь, объединяющую две ранее отдельные группы. Включите изолированный узел в тестовые данные и задайте ожидаемый порядок вывода. Пример помогает сформулировать запрос, не предполагая, что математически равнозначная коллекция удовлетворяет сериализатору или коду отображения приложения.

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

Подключите модель через поддерживаемую OpenAI-совместимую конечную точку или Anthropic, указав учётные данные при необходимости. Если сервис предлагает модель ИИ с устранёнными механизмами отказа, её можно использовать в сеансе; ограничения зависят от поставщика. Инструменты и контекст также зависят от модели и сервера, поэтому ограничьте исследование исходниками и свидетельствами, доступными сеансу.

Группировка за пределами успешного примера

Должны ли изолированные узлы входить в вывод?

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

Может ли равнозначный порядок групп нарушить работу вызывающего кода?

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

Что делать с концом ребра за пределами диапазона?

Определите поведение отклонения ввода и место сообщения об ошибке. Пример проверяет идентификаторы по заявленному числу узлов. Изучите реакцию вызывающего кода, не считая, что исключение само по себе сообщает полезную ошибку тому, кто предоставил данные группировки.

Как проверить связь, объединяющую группы?

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

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

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