HHullspring
Pracovní prostředí s AI pro kód

Konvexní obaly celočíselných bodů

Sestroj konvexní obal proti směru hodinových ručiček z nejvýše 1000 celočíselných bodů od lexikografického minima.

● ● ●Hullspring●
Pracovní postupy · Konvexní obaly celočíselných bodů ×
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]
✳Konvexní obaly celočíselných bodů
✓ ZměnyPřed použitím zkontrolujte ↗
Ilustrace pracovního prostředí
Projekt
Ověř prázdný vstup, duplicity a kolineární body, ponech jen krajní konce a odmítni zlomkové souřadnice.
Před použitím zkontrolujte
Porovnejte skutečné chování s očekávaným výsledkem. Pokud kontrola selže, před dalšími změnami zjistěte příčinu.
Modely
Nastavte endpoint kompatibilní s OpenAI nebo Anthropic pomocí základní URL a případného API klíče. Otestujte připojení. Lokální server modelu musí běžet; vzdálené nástroje mohou data odesílat samostatně.
Pracovní postupy

Konvexní obaly celočíselných bodů

Pracovní postupy ↗
Pracovní postupy
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]
Pracovní prostředí s AI pro kód

Propojte změny geometrie s aplikací, která je používá

Geometrický kód se kontroluje snáze, když požadovaný výstup popíšete z hlediska aplikace. Hullspring je programovací prostředí s AI pro Windows, kde můžete tento požadavek projít s otevřeným projektem. Než připojený model navrhne úpravy, požádejte jej o kontrolu příslušného výpočtu a jeho příjemců, aby návrh řešil skutečné chování a pouze nepřeskupoval vzorec.

Například nástroj pro výběr může používat vnější hranici množiny bodů. Požádejte o prověření vlivu duplicitních a kolineárních bodů na tuto hranici a vysvětlete, zda mají být ve výsledku i mezilehlé body hran. Přiložte volající vykreslovací kód a reprezentativní testovací případy. Asistent tak získá konkrétní úkol, aniž by se předpokládalo, že Hullspring obsahuje nástroj pro výběr.

Navrženou opravu prověřte z hlediska pořadí výstupu, validace vstupu, prázdného případu i typického tvaru. Spusťte projekt s body na přímce, opakovanými souřadnicemi a malým mnohoúhelníkem. Porovnejte vrácenou posloupnost s očekáváním příjemce; i správná geometrická množina může vést k chybnému zobrazení, pokud se liší konvence pořadí nebo uzavření.

Hullspring podporuje připojení modelů přes koncové body kompatibilní s OpenAI nebo koncové body Anthropic. Abliterovaný model AI lze zvolit, kde je dostupný, ale omezení, kapacitu kontextu a nástroje určuje jeho služba. Pomocí konverzace vyjasněte implementační volby a ověřování opírejte o vlastní testovací případy projektu.

Příprava požadavku na údržbu geometrie

Mají kolineární body hran zůstat na hranici?

Uveďte požadavek příjemce. Některá použití potřebují jen krajní vrcholy, jiná zachovávají mezilehlé body. Požádejte model o kontrolu současné konvence a výslovné uvedení každé změny pravidla v návrhu i testech.

Proč do kontroly výpočtu zahrnout vykreslovací kód?

Může očekávat určité pořadí průchodu nebo opakovaný uzavírací vrchol. Výpočet může vrátit zamýšlené body, ale porušit toto rozhraní. Kontrola příjemce pomáhá zabránit tomu, aby lokální oprava způsobila viditelnou regresi.

Které testovací případy rychle odhalí předpoklady?

Použijte prázdnou množinu, jeden bod, duplicity, přímku a malý mnohoúhelník s vnitřním bodem. Pro každý zapište očekávanou výstupní konvenci. Spusťte je v projektu a nespoléhejte jen na nakreslený tvar.

Může oprava mimochodem rozšířit přijímané typy souřadnic?

Považujte to za samostatnou změnu podmínek. Různé číselné reprezentace mohou ovlivnit porovnávání i validaci. Než rozšíření přijmete jako součást jinak úzce zaměřené geometrické opravy, zeptejte se, proč je potřebné, a prověřte volající kód.

Stáhnout pro Windows ↗

Hullspring · Aktualizováno 2026-10-25