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

Мінімальні кістякові ліси

Знайдіть мінімальний кістяковий ліс для до 64 вузлів і 1024 ребер із цілими вагами в ±10^9.

● ● ●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. Моделі

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

  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