HHullspring
Spațiu de programare cu AI

Învelișuri convexe cu întregi

Construiește un înveliș convex antiorar din cel mult 1000 puncte întregi, pornind de la minimul lexicografic.

● ● ●Hullspring●
Fluxuri de lucru · Învelișuri convexe cu întregi ×
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]
✳Învelișuri convexe cu întregi
✓ ModificăriVerifică înainte de aplicare ↗
Ilustrarea spațiului de lucru
Proiect
Testează intrare goală, duplicate și puncte coliniare, păstrând doar extremitățile și respingând coordonate fracționare.
Verifică înainte de aplicare
Compară comportamentul real cu rezultatul așteptat. Dacă o verificare eșuează, cercetează cauza înainte de alte modificări.
Modele
Configurează un endpoint compatibil OpenAI sau Anthropic cu URL-ul de bază și cheia API, dacă este necesară. Testează conexiunea. Serverul local trebuie să ruleze; instrumentele externe pot transmite date separat.
Fluxuri de lucru

Învelișuri convexe cu întregi

Fluxuri de lucru ↗
Fluxuri de lucru
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]
Spațiu de programare cu AI

Leagă modificările geometrice de aplicația care le folosește

Codul geometric devine mai ușor de verificat când rezultatul cerut este formulat în termenii aplicației. Hullspring este un spațiu de lucru Windows pentru programare cu IA, în care poți analiza această cerință cu proiectul deschis. Cere modelului conectat să inspecteze calculul relevant și codul consumator înainte de a sugera editări, astfel încât propunerea să răspundă unui comportament real, nu doar să rearanjeze o formulă.

De exemplu, un instrument de selecție poate folosi un contur exterior în jurul unui set de puncte. Cere o analiză a influenței punctelor duplicate și coliniare asupra conturului și explică dacă punctele intermediare de pe laturi trebuie incluse în rezultat. Include apelantul care randează și cazuri de test reprezentative. Astfel îi oferi asistentului o sarcină concretă, fără a presupune că Hullspring include vreun instrument de selecție.

Verifică ordinea rezultatului, validarea intrărilor și cazul gol în corecția propusă, precum și forma tipică. Rulează proiectul cu puncte pe o linie, coordonate repetate și un poligon mic. Compară secvența returnată cu așteptările codului consumator; setul geometric corect poate produce totuși o afișare greșită când diferă convențiile de ordonare sau închidere.

Hullspring acceptă conexiuni la modele prin endpointuri compatibile OpenAI sau Anthropic. Poți selecta un model IA cu cenzura eliminată acolo unde este disponibil, dar serviciul său determină restricțiile, capacitatea contextului și instrumentele. Folosește conversația pentru a clarifica alegerile de implementare și bazează verificarea pe cazurile de test ale proiectului.

Pregătirea unei cereri de întreținere a codului geometric

Punctele coliniare de pe laturi ar trebui păstrate în contur?

Precizează cerința codului consumator. Unele utilizări necesită doar vârfurile extreme, altele păstrează punctele intermediare. Cere modelului să inspecteze convenția actuală și să expliciteze orice schimbare de politică atât în propunere, cât și în teste.

De ce să includ codul de randare în analiza unui calcul?

Poate aștepta o anumită ordine de parcurgere sau repetarea vârfului de închidere. Calculul poate returna punctele dorite, dar poate încălca acea interfață. Inspectarea consumatorului ajută la evitarea unei regresii vizibile provocate de o corecție locală.

Ce cazuri de test expun rapid ipotezele?

Folosește un set gol, un singur punct, duplicate, o linie dreaptă și un poligon mic cu un punct interior. Scrie convenția de rezultat așteptată pentru fiecare. Rulează-le în proiect, fără a te baza numai pe o formă desenată.

Poate o corecție să extindă incidental tipurile de coordonate acceptate?

Tratează asta ca pe o modificare separată a contractului. Reprezentările numerice diferite pot afecta comparațiile și validarea. Întreabă de ce este necesară extinderea și verifică apelanții înainte de a o accepta ca parte a unei corecții geometrice altfel bine delimitate.

Descarcă pentru Windows ↗

Hullspring · Actualizat 2026-10-25