Sıfır-bir sırt çantası değeri
Her nesneyi bir kez kullanarak sıfır ile 1000 arasında tamsayı kapasiteyle en fazla 64 ağırlık-değer çiftinin değerini en yükseğe çıkarın.
def knapsack_value(items, capacity):
items = tuple(tuple(item) for item in items)
if type(capacity) is not int or not 0 <= capacity <= 1000:
raise ValueError("capacity.range")
if len(items) > 64 or any(len(item) != 2 for item in items):
raise ValueError("items.shape")
if any(type(w) is not int or type(v) is not int or not 1 <= w <= 1000 or not 0 <= v <= 1000000 for w, v in items):
raise ValueError("item.range")
best = [0] * (capacity + 1)
for weight, value in items:
for limit in range(capacity, weight - 1, -1):
best[limit] = max(best[limit], best[limit - weight] + value)
return best[capacity]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.
Proje
Sıfır kapasiteyi ve fazla ağır nesneyi sınayın; tabloyu kurmadan sıfır ağırlıkları veya tamsayı olmayan işlenenleri reddedin.
def knapsack_value(items, capacity):
items = tuple(tuple(item) for item in items)
if type(capacity) is not int or not 0 <= capacity <= 1000:
raise ValueError("capacity.range")
if len(items) > 64 or any(len(item) != 2 for item in items):
raise ValueError("items.shape")
if any(type(w) is not int or type(v) is not int or not 1 <= w <= 1000 or not 0 <= v <= 1000000 for w, v in items):
raise ValueError("item.range")
best = [0] * (capacity + 1)
for weight, value in items:
for limit in range(capacity, weight - 1, -1):
best[limit] = max(best[limit], best[limit - weight] + value)
return best[capacity]Seçim kuralını onu uygulayan koddan ayırın
PackSerein, optimizasyon gereksinimlerinin uygulama dosyalarıyla birlikte tartışılabildiği bir Windows proje çalışma alanında yapay zeka destekli yazılım çalışmalarını destekler. Nelerin seçilebileceğini, hangi kısıtların zorunlu olduğunu ve çağıran kodun gerçekte hangi sonuca ihtiyaç duyduğunu açıklayın. Çözücüyü değiştirmeden önce asistandan mevcut gösterimi incelemesini isteyin. Açık bir amaç, makul uygulamanın fark edilmesi güç biçimde farklı bir problemi çözmesini önler.
knapsack.py örneği, kapasite sınırı altında her öğenin en fazla bir kez seçilebildiği bir inceleme görevi sunar. Önerilen güncellemenin bu kuralı koruyup korumadığını ve uygulamanın yalnızca değere mi yoksa seçilen öğelere de mi ihtiyaç duyduğunu sorabilirsiniz. Küçük bir durumu elle çözün, ardından kodu buna göre inceleyin. Girdi sınırlarını ve reddedilen değerleri aynı incelemenin parçası tutun.
Yama hazır olduğunda boş seçim, kapasite sınırı ve birbiriyle yarışan birleşimler için proje testlerini çalıştırın. Kullanan kodu uyarlamadan önce çıktı sözleşmesini kontrol edin. PackSerein, desteklenen OpenAI uyumlu veya Anthropic uç noktalarını ve gerektiğinde kimlik bilgilerini kabul eder. Bağlantınız üzerinden mevcutsa filtresiz yapay zeka modeli seçilebilir; kısıtlamaları, bağlam sınırları ve araç desteği model ile sunucuya bağlı kalır. Çalışma alanı kodlama kararını yapılandırmaya yardımcı olurken amacı karşılayıp karşılamadığını kontrolleriniz belirler.
Optimizasyon görevini tanımlayan sorular
- Bir öğenin iki kez seçilip seçilemeyeceği neden belirtilmeli?
Yinelenen seçime izin vermek problemi ve sonucu değiştirebilir. Bu kısıtı isteğe koyun ve tekrarın farklı sonuç vereceği küçük bir durumu test edin; ardından güncellemenin bunu koruyup korumadığını inceleyin.
- Uygulama için en iyi değer yeterli mi?
Çağıran koda bağlıdır. Bazı tüketiciler yalnızca puana, diğerleri seçilen öğelere de ihtiyaç duyar. Asistanın tek sayının özelliği tamamladığını varsaymaması için değişiklik istemeden önce gereken çıktıyı belirtin.
- Eşit değerli çözümleri nasıl ele almalıyım?
Herhangi bir geçerli optimumun kabul edilip edilmediğini veya uygulamanın deterministik eşitlik bozma kuralına ihtiyaç duyup duymadığını tanımlayın. Seçilen öğeler döndürülüyorsa eşitlikleri açıkça test edin ve tesadüfi yineleme sırasına dayanmak yerine kuralı inceleyin.
- Örnek, büyük ölçekli çözücü performansını ortaya koyabilir mi?
Hayır. Sınırlı bir uygulamayı tartışmak için kullanın, ardından gerçek projeyi gereken boyutlarda değerlendirin. Küçük bir doğru durum ve yapay zeka açıklaması, farklı ölçekte çalışma süresi veya bellek davranışını ortaya koymaz.
PackSerein · Güncellendi 2026-10-25