Konvexe Hüllen mit Ganzzahlen
Erzeuge eine gegen den Uhrzeigersinn laufende konvexe Hülle aus höchstens 1000 ganzzahligen Punkten, beginnend beim lexikografisch kleinsten Punkt.
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]- Projekt
- Teste leere Eingaben, Duplikate und kollineare Punkte, behalte nur äußerste Endpunkte und lehne Bruchkoordinaten ab.
- Vor dem Anwenden prüfen
- Vergleichen Sie das tatsächliche Verhalten mit dem erwarteten Ergebnis. Klären Sie fehlgeschlagene Prüfungen vor weiteren Änderungen.
- Modelle
- Richten Sie einen OpenAI-kompatiblen oder Anthropic-Endpunkt mit Basis-URL und gegebenenfalls API-Schlüssel ein. Testen Sie die Verbindung. Ein lokaler Modellserver muss laufen; entfernte Werkzeuge können Daten separat übertragen.
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]Geometrieänderungen mit der nutzenden Anwendung verbinden
Geometriecode lässt sich leichter prüfen, wenn die erforderliche Ausgabe in Begriffen der Anwendung beschrieben ist. Hullspring ist eine KI-Programmierumgebung unter Windows, um diese Anforderung bei geöffnetem Projekt durchzuarbeiten. Lassen Sie das verbundene Modell die relevante Berechnung und ihre Nutzer vor Änderungsvorschlägen untersuchen, damit der Vorschlag tatsächliches Verhalten verbessert, statt lediglich eine Formel umzustellen.
Beispielsweise könnte ein Auswahlwerkzeug eine äußere Grenze um eine Punktmenge verwenden. Lassen Sie prüfen, wie doppelte und kollineare Punkte diese Grenze beeinflussen, und erklären Sie, ob Zwischenpunkte auf Kanten zum Ergebnis gehören. Fügen Sie den rendernden Aufrufer und repräsentative Testdaten hinzu. Das gibt dem Assistenten eine konkrete Aufgabe, ohne vorauszusetzen, dass Hullspring ein Auswahlwerkzeug mitliefert.
Prüfen Sie einen Änderungsvorschlag auf Ausgabereihenfolge, Eingabevalidierung und den leeren Fall sowie auf typische Formen. Führen Sie Ihr Projekt mit einer Punktlinie, wiederholten Koordinaten und einem kleinen Polygon aus. Vergleichen Sie die zurückgegebene Sequenz mit den Erwartungen des nutzenden Codes: Auch die richtige geometrische Menge kann bei abweichender Reihenfolge oder Abschlusskonvention falsch dargestellt werden.
Hullspring unterstützt Modellverbindungen über OpenAI-kompatible oder Anthropic-Endpunkte. Ein abliteriertes KI-Modell kann gewählt werden, sofern verfügbar; sein Dienst bestimmt jedoch Einschränkungen, Kontextkapazität und Werkzeuge. Klären Sie im Gespräch Ihre Implementierungsentscheidungen und stützen Sie die Überprüfung weiterhin auf die eigenen Testdaten des Projekts.
Eine Anfrage zur Geometriewartung vorbereiten
- Sollten kollineare Kantenpunkte auf der Grenze bleiben?
Benennen Sie die Anforderung des nutzenden Codes. Manche Anwendungen benötigen nur die äußersten Eckpunkte, andere behalten Zwischenpunkte. Lassen Sie das Modell die aktuelle Konvention prüfen und jede Regeländerung im Vorschlag und in Tests ausdrücklich festhalten.
- Warum sollte eine Berechnungsprüfung den Renderingcode einschließen?
Er kann eine bestimmte Durchlaufrichtung oder einen wiederholten Abschlusspunkt erwarten. Eine Berechnung kann die beabsichtigten Punkte liefern und dennoch diese Schnittstelle verletzen. Die Prüfung des nutzenden Codes hilft, sichtbare Regressionen durch lokale Korrekturen zu vermeiden.
- Welche Testdaten legen Annahmen schnell offen?
Verwenden Sie eine leere Menge, einen Punkt, Duplikate, eine Gerade und ein kleines Polygon mit einem inneren Punkt. Schreiben Sie die erwartete Ausgabekonvention jeweils auf. Führen Sie die Fälle im Projekt aus, statt sich allein auf eine gezeichnete Form zu verlassen.
- Darf eine Änderung nebenbei weitere Koordinatentypen zulassen?
Behandeln Sie dies als gesonderte Änderung der Schnittstellenvereinbarung. Andere Zahlendarstellungen können Vergleiche und Validierung beeinflussen. Fragen Sie, warum die Erweiterung nötig ist, und prüfen Sie Aufrufer, bevor Sie sie als Teil einer ansonsten gezielten Geometriekorrektur annehmen.
Hullspring · Aktualisiert 2026-10-25