Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी++ प्रोग्राम 0-1 नैपसैक समस्या को हल करने के लिए

0-1 बस्ता समस्या में, वस्तुओं का एक सेट दिया जाता है, प्रत्येक का एक वजन और एक मूल्य होता है। हमें संग्रह में शामिल करने के लिए प्रत्येक आइटम की संख्या निर्धारित करने की आवश्यकता है ताकि कुल वजन दी गई सीमा से कम या उसके बराबर हो और कुल मूल्य जितना संभव हो उतना बड़ा हो।

इनपुट

मान =[10, 20, 30, 40, 60, 70]वजन =[1, 2, 3, 6, 7, 4] int w=7

आउटपुट

नैपसेक मान है:100

एल्गोरिदम

प्रारंभ इनपुट:वजन और मूल्य के साथ प्रत्येक आइटम का सेट knapsack क्षमता सेट करें आइटम्स की संख्या =sizeof(values) / sizeof(values[0]) Knapsack (मान (सरणी v में संग्रहीत), वज़न (सरणी में संग्रहीत) w), अलग-अलग मदों की संख्या (n), नैपसैक क्षमता W) यदि (w <0) यदि कोई आइटम शेष नहीं है या क्षमता 0 हो जाती है तो वापस लौटें 0 वर्तमान आइटम n को knapSack (v[n]) में शामिल करें और शेष वस्तुओं के लिए पुनरावर्ती करें ( n - 1) घटी हुई क्षमता के साथ (W - w[n]) knapSack से वर्तमान आइटम n को बाहर निकालें और शेष वस्तुओं के लिए पुनरावर्ती करें (n - 1) वर्तमान आइटम को शामिल या बहिष्कृत करके हमें प्राप्त होने वाला अधिकतम मान लौटाएं। 

उदाहरण कोड

#include #include  namespace std का उपयोग करके;int knapSack(int v[], int w[], int n, int W) {if (W <0) रिटर्न INT_MIN; अगर (एन <0 || डब्ल्यू ==0) वापसी 0; int in =v[n] + knapSack(v, w, n-1, W - w[n]); int पूर्व =knapSack (वी, डब्ल्यू, एन - 1, डब्ल्यू); वापसी अधिकतम (में, पूर्व);} इंट मुख्य () {इंट वी [] ={10, 20, 30, 40, 60, 70}; इंट डब्ल्यू [] ={ 1, 2, 3, 6, 7, 4}; इंट डब्ल्यू =7; int n =sizeof(v) / sizeof(v[0]); cout <<"नैपसेक मान है" < 

आउटपुट

नैपसेक मान 100 है

  1. C++ में समांतर चतुर्भुज का क्षेत्रफल ज्ञात करने का कार्यक्रम

    इस समस्या में, हमें दो मान दिए गए हैं जो समांतर चतुर्भुज के आधार और ऊंचाई को दर्शाते हैं। हमारा कार्य C++ में समांतर चतुर्भुज का क्षेत्रफल ज्ञात करने के लिए एक प्रोग्राम बनाना है। समांतर चतुर्भुज एक चार भुजा बंद आकृति है जिसकी विपरीत भुजाएँ एक दूसरे के समान और समानांतर हैं। समस्या को समझने के लि

  1. सी ++ प्रोग्राम विगेनियर साइफर को लागू करने के लिए

    Vigenere Cipher, अल्फ़ाबेटिक टेक्स्ट को एन्क्रिप्ट करने की एक तरह की पॉलीअल्फ़ाबेटिक प्रतिस्थापन विधि है। इस विधि में एन्क्रिप्शन और डिक्रिप्शन के लिए Vigenere Cipher Table का उपयोग किया जाता है जिसमें A से Z तक के अक्षर 26 पंक्तियों में लिखे जाते हैं। एन्क्रिप्शन कुंजी: स्वागत है संदेश: यहिस्ट

  1. 0-1 नैपसैक समस्या के लिए पायथन कार्यक्रम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें n वस्तुओं के वजन और मूल्य दिए गए हैं, हमें इन वस्तुओं को अधिकतम क्षमता w तक क्षमता W के बैग में रखना होगा। हमें अधिकतम संख्या में आइटम ले जाने और उसका मूल्य वापस करने की आवश्यकता है। आइए अब नीचे दिए गए कार्यान्व