Tam sayı noktaların dışbükey kabuğu
En fazla 1000 tam sayı noktasından sözlük sırasındaki en küçük noktada başlayan saat yönünün tersine dışbükey kabuk oluşturun.
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]- Proje
- Boş girdiyi, tekrarları ve doğrusal noktaları deneyip yalnızca uçları koruyun ve kesirli koordinatları reddedin.
- Uygulamadan önce inceleyin
- Gerçek davranışı beklenen sonuçla karşılaştırın. Bir kontrol başarısız olursa yeni değişikliklerden önce nedenini araştırın.
- Modeller
- Temel URL ve gerekiyorsa API anahtarıyla OpenAI uyumlu veya Anthropic endpoint yapılandırın. Bağlantıyı test edin. Yerel model sunucusu çalışıyor olmalıdır; uzak araçlar ayrıca veri aktarabilir.
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]Geometri değişikliklerini onları kullanan uygulamayla ilişkilendirin
Gerekli çıktı uygulama açısından belirtildiğinde geometri kodunu incelemek kolaylaşır. Hullspring, projeniz açıkken bu gereksinimi ele alabileceğiniz bir Windows yapay zekâ kodlama çalışma alanıdır. Önerinin yalnızca formülü yeniden düzenlemek yerine gerçek bir davranışı karşılaması için bağlı modelden düzenleme önermeden önce ilgili hesaplamayı ve onu kullanan kodu incelemesini isteyin.
Örneğin bir seçim aracı, nokta kümesinin etrafındaki dış sınırı kullanabilir. Yinelenen ve doğrusal noktaların bu sınırı nasıl etkilediğinin incelenmesini isteyin; ara kenar noktalarının sonuca dâhil olup olmayacağını açıklayın. Görüntüleyen çağıran kodu ve temsilî test verilerini ekleyin. Bu, Hullspring ile bir seçim aracı geldiğini varsaymadan asistana somut bir görev verir.
Önerilen yamayı olağan şeklin yanı sıra çıktı sırası, girdi doğrulaması ve boş durum açısından inceleyin. Projenizi bir doğru üzerindeki noktalarla, yinelenen koordinatlarla ve küçük bir çokgenle çalıştırın. Dönen diziyi onu kullanan kodun beklentileriyle karşılaştırın; sıra veya kapatma kuralları farklıysa doğru geometrik küme bile yanlış görüntü üretebilir.
Hullspring, OpenAI uyumlu veya Anthropic uç noktaları üzerinden model bağlantılarını destekler. Sunulduğu yerde abliterated bir yapay zekâ modeli seçilebilir; ancak kısıtlamaları, bağlam kapasitesini ve araçları hizmeti belirler. Görüşmeyle uygulama tercihlerinizi netleştirin ve doğrulamayı projenin kendi test verilerine dayandırın.
Geometri bakımı isteğini hazırlama
- Doğrusal kenar noktaları sınırda kalmalı mı?
Sonucu kullanan kodun gereksinimini belirtin. Bazı kullanımlar yalnızca uç köşeleri isterken bazıları ara noktaları korur. Modelden mevcut kuralı incelemesini ve kuraldaki her değişikliği hem öneride hem testlerde açıkça belirtmesini isteyin.
- Hesaplama incelemesine görüntüleme kodu neden eklenmeli?
Belirli bir dolaşım sırası veya tekrarlanan bir kapanış köşesi bekleyebilir. Hesaplama amaçlanan noktaları döndürüp yine de bu arayüzü ihlal edebilir. Sonucu kullanan kodu incelemek, yerel düzeltmenin görünür bir gerileme yaratmasını önlemeye yardımcı olur.
- Hangi test verileri varsayımları hızla ortaya çıkarır?
Boş küme, tek nokta, yinelenen noktalar, doğru ve içinde bir nokta bulunan küçük çokgen kullanın. Her biri için beklenen çıktı kuralını yazın. Yalnızca çizilmiş şekle güvenmek yerine bunları projenizde çalıştırın.
- Bir yama kabul edilen koordinat türlerini yan etki olarak genişletebilir mi?
Bunu ayrı bir sözleşme değişikliği olarak ele alın. Farklı sayısal gösterimler karşılaştırmaları ve doğrulamayı etkileyebilir. Odaklı bir geometri düzeltmesinin parçası olarak kabul etmeden önce genişletmenin neden gerektiğini sorun ve çağıran kodu kontrol edin.
Hullspring · Güncellendi 2026-10-25