शून्य-एक नैपसैक का मूल्य
शून्य से 1000 तक पूर्णांक क्षमता के साथ अधिकतम 64 भार-मूल्य युग्मों का मूल्य अधिकतम करें और हर वस्तु एक बार लें.
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]लागू करने से पहले समीक्षा करें
वास्तविक व्यवहार की अपेक्षित परिणाम से तुलना करें। जाँच असफल हो तो अगले बदलाव से पहले कारण समझें।
मॉडल
बेस URL और आवश्यक होने पर API कुंजी से OpenAI-संगत या Anthropic endpoint सेट करें। कनेक्शन जाँचें। स्थानीय मॉडल सर्वर चालू होना चाहिए; दूरस्थ उपकरण अलग से डेटा भेज सकते हैं।
प्रोजेक्ट
शून्य क्षमता और बहुत भारी वस्तु जाँचें तथा तालिका बनाने से पहले शून्य भार या गैर-पूर्णांक संकार्य अस्वीकार करें.
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]चयन के नियम को उसे लागू करने वाले कोड से अलग रखें
PackSerein Windows परियोजना कार्यक्षेत्र में एआई-सहायता प्राप्त सॉफ़्टवेयर काम का समर्थन करता है, जहाँ कार्यान्वयन फ़ाइलों के साथ अनुकूलन आवश्यकताओं पर चर्चा कर सकते हैं। बताएँ कि क्या चुना जा सकता है, कौन-सी सीमाएँ अनिवार्य हैं और कॉल करने वाले को वास्तव में क्या परिणाम चाहिए। सॉल्वर बदलने से पहले सहायक से मौजूदा निरूपण जाँचने को कहें। स्पष्ट उद्देश्य विश्वसनीय दिखने वाले कार्यान्वयन को थोड़ी अलग समस्या हल करने से रोकता है।
knapsack.py उदाहरण में क्षमता सीमा के भीतर हर वस्तु अधिकतम एक बार चुनी जा सकती है। पूछ सकते हैं कि प्रस्तावित बदलाव यह नियम बनाए रखता है या नहीं और अनुप्रयोग को केवल मान चाहिए या चुनी वस्तुएँ भी। छोटा मामला हाथ से हल करके कोड उससे जाँचें। इनपुट सीमाएँ और अस्वीकृत मान उसी समीक्षा में रखें।
पैच तैयार होने पर खाली चयन, क्षमता सीमा और प्रतिस्पर्धी संयोजनों के परियोजना परीक्षण चलाएँ। उपयोग करने वाला कोड बदलने से पहले आउटपुट अनुबंध जाँचें। PackSerein समर्थित OpenAI-संगत या Anthropic एंडपॉइंट और आवश्यक क्रेडेंशियल स्वीकारता है। कनेक्शन में उपलब्ध हो तो अनफ़िल्टर्ड एआई मॉडल चुन सकते हैं; पाबंदियाँ, संदर्भ सीमाएँ और उपकरण समर्थन मॉडल तथा सर्वर पर निर्भर रहते हैं। कार्यक्षेत्र कोडिंग निर्णय व्यवस्थित करता है, जबकि आपकी जाँच तय करती है कि उद्देश्य पूरा हुआ या नहीं।
अनुकूलन कार्य परिभाषित करने वाले प्रश्न
- वस्तु दो बार चुनी जा सकती है या नहीं, यह क्यों बताएँ?
दोहराया चयन समस्या और परिणाम बदल सकता है। अनुरोध में यह सीमा रखें और छोटा मामला परखें जहाँ दोहराव अलग उत्तर देगा, फिर जाँचें कि बदलाव इसे बनाए रखता है।
- क्या इष्टतम मान अनुप्रयोग के लिए पर्याप्त है?
यह कॉल करने वाले पर निर्भर है। कुछ को केवल अंक चाहिए, दूसरों को चुनी वस्तुएँ भी। बदलाव माँगने से पहले आवश्यक आउटपुट बताएँ, ताकि सहायक एक संख्या को पूरी सुविधा न माने।
- समान मान वाले समाधान कैसे सँभालूँ?
तय करें कि कोई भी मान्य इष्टतम समाधान स्वीकार्य है या अनुप्रयोग को नियत बराबरी-निर्णय नियम चाहिए। चुनी वस्तुएँ लौटती हों तो बराबरी स्पष्ट परखें और आकस्मिक पुनरावृत्ति क्रम पर भरोसा करने के बजाय नियम जाँचें।
- क्या उदाहरण बड़े पैमाने पर सॉल्वर का प्रदर्शन स्थापित कर सकता है?
नहीं। इससे सीमित कार्यान्वयन पर चर्चा करें, फिर वास्तविक परियोजना को आवश्यक आकारों पर आँकें। छोटा सही मामला और एआई व्याख्या दूसरे पैमाने पर रनटाइम या मेमोरी व्यवहार स्थापित नहीं करते।
PackSerein · अद्यतन 2026-10-25