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

Опуклі оболонки цілочисельних точок

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

● ● ●Hullspring●
Сценарії · Опуклі оболонки цілочисельних точок ×
def convex_hull(points):
    if type(points) is not list or len(points) > 1000:
        raise ValueError("hull.input")
    if any(type(p) not in (tuple, list) or len(p) != 2 or
           any(type(v) is not int for v in p) for p in points):
        raise ValueError("hull.point")
    ordered = sorted(set(map(tuple, points)))
    if len(ordered) <= 1:
        return ordered
    def turn(a,b,c):
        return (b[0]-a[0])*(c[1]-a[1])-(b[1]-a[1])*(c[0]-a[0])
    def chain(sequence):
        out = []
        for p in sequence:
            while len(out) >= 2 and turn(out[-2],out[-1],p) <= 0:
                out.pop()
            out.append(p)
        return out
    return chain(ordered)[:-1]+chain(reversed(ordered))[:-1]
✳Опуклі оболонки цілочисельних точок
✓ ЗміниПеревірте перед застосуванням ↗
Ілюстрація робочого середовища
Проєкт
Перевірте порожній ввід, дублікати й колінеарні точки, залишаючи лише крайні кінці та відхиляючи дробові координати.
Перевірте перед застосуванням
Порівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами.
Моделі
Налаштуйте OpenAI-сумісний або Anthropic endpoint із базовою URL-адресою та API-ключем, якщо він потрібен. Перевірте з’єднання. Локальний сервер моделі має працювати; віддалені інструменти можуть окремо передавати дані.
Сценарії

Опуклі оболонки цілочисельних точок

Сценарії ↗
Сценарії
def convex_hull(points):
    if type(points) is not list or len(points) > 1000:
        raise ValueError("hull.input")
    if any(type(p) not in (tuple, list) or len(p) != 2 or
           any(type(v) is not int for v in p) for p in points):
        raise ValueError("hull.point")
    ordered = sorted(set(map(tuple, points)))
    if len(ordered) <= 1:
        return ordered
    def turn(a,b,c):
        return (b[0]-a[0])*(c[1]-a[1])-(b[1]-a[1])*(c[0]-a[0])
    def chain(sequence):
        out = []
        for p in sequence:
            while len(out) >= 2 and turn(out[-2],out[-1],p) <= 0:
                out.pop()
            out.append(p)
        return out
    return chain(ordered)[:-1]+chain(reversed(ordered))[:-1]
Робоче середовище з ШІ для коду

Пов’яжіть геометричні зміни із застосунком, що їх використовує

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

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

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

Hullspring підтримує підключення моделей через кінцеві точки, сумісні з OpenAI, або Anthropic. Аблітеровану модель ШІ можна обрати там, де вона доступна, але її сервіс визначає обмеження, місткість контексту та інструменти. Використовуйте розмову для уточнення рішень реалізації та спирайте перевірку на власні тестові дані проєкту.

Підготовка запиту на супровід геометричного коду

Чи мають колінеарні точки ребра залишатися в межі?

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

Навіщо додавати код відображення до перевірки обчислення?

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

Які тестові дані швидко виявляють припущення?

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

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

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

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

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