सरणी के साथ सभी संभावित सबसेट्स को सूचीबद्ध करें, सरणी के रूप में पूर्णांक के एक अनुरक्षित सेट को देखते हुए, सभी संभावित सबसेट ढूंढें जिनकी राशि किसी कॉन्स इंटीजर के से अधिक या बराबर है, उदा। : - हमारे सेट {1,2,3} है और कश्मीर = 2एन पूर्णांक के सेट को देखते हुए, sum> = k
संभव सबसेट: -
{2},
{3},
{1,2},
{1,3},
{2,3},
{1,2,3}
मैं केवल एक अनुभवहीन एल्गोरिथ्म जो सेट के सभी उप-समूहों और जांच करता है कि योग को सूचीबद्ध करता है के बारे में सोच सकते हैं सबसेट का है> = के या नहीं, लेकिन इसका एक घातीय एल्गोरिदम और सभी सबसेट्स को सूचीबद्ध करने के लिए ओ (2^एन) की आवश्यकता होती है। क्या मैं इसे बहुपद समय में हल करने के लिए गतिशील प्रोग्रामिंग का उपयोग कर सकता हूं?
आप मुद्रण में रुचि रखते हैं या इन सभी सबसेट लिस्टिंग तो सबसे खराब स्थिति में आप अभी भी '2^N-1' (सब अलग हो सकता है, तो खाली से) सबसेट जिन्हें आपको सूचीबद्ध करने की आवश्यकता है। हालांकि आप मान सकते हैं कि बहुपद में गतिशील प्रोग्रामिंग के साथ कितने हैं। – cyon
@cyon, हम डायनामिक प्रोग्रामिंग का उपयोग करके ऐसे सबसेट की संख्या कैसे गिन सकते हैं? – Hidetoshi
यह पता लगाना कि कोई सबसेट है जो 'k' के बराबर है, एनपी-हार्ड (सब्सेट समस्या समस्या) है - इसलिए, यह प्रश्न भी। और चूंकि आप वास्तविक सेट चाहते हैं, मुझे लगता है कि सभी सबसेट बनाने के लिए मजबूर करने का प्रयास करने का तरीका है। (शाखा और बाध्य तकनीकों का उपयोग करके कुछ अनुकूलन जोड़ सकते हैं, लेकिन इसके बारे में, आईएमओ) – amit