यह अभी भी है NPअपूर्ण, यहां तक कि के लिए k=2। सबसे बड़ी राशि के उदाहरण को देखते हुए, हम संख्याओं को विभाजित करके और कुछ अतिरिक्त बिट्स जोड़कर इस संस्करण में बदल सकते हैं।
पहला, समस्या में सभी संख्याओं का योग इससे कम होगा 2m के कुछ मूल्य के लिए m।
अब, एक नंबर लेते हैं n मूल समस्या से जो है kबिट्स सेट। हम इस संख्या को में विभाजित करेंगेk 2 बिट के साथ संख्याएँ ऐसी सेट होती हैं कि उन संख्याओं का योग होता है n+2k+m। हम इसे खोजकर, पुनरावर्ती रूप से कर सकते हैं⌈k⌉ संख्याएँ जो पहले तक होती हैं ⌈k⌉ बिट्स प्लस 2k+m−1 तथा ⌊k⌋ संख्या जो अंतिम तक योग करती है ⌊k⌋ बिट्स प्लस 2k+m−1।
उस नंबर के अलावा हम नंबर भी जोड़ देंगे 2k+mसमस्या के लिए। एक समाधान में या तो यह संख्या होनी चाहिए या सभीkपूर्व में निर्मित संख्याएँ। यदि मूल लक्ष्य मान थाt नया लक्ष्य मान होगा t+2k+m।
यदि मूल समस्या में एक से अधिक संख्या थी, तो हम इस प्रक्रिया को दोहरा सकते हैं k+m+1 के नए मूल्य के लिए m।
स्थिति में बिट के केवल दो तरीके हैं k+m सेट किया जा सकता है: उत्तर में संख्या हो सकती है 2k+m या सभी k संख्या जो कि योग है n+2k+m। इसलिए हमने आपकी सबसेट राशि को उप-योग में घटा दिया है।
एक उदाहरण के रूप में, आइए लेते हैं {2,3,5} लक्ष्य मान के साथ 7। इस समस्या को एन्कोड किया जा सकता है क्योंकि निम्नलिखित बाइनरी संख्याओं को ले कर यहाँ प्रस्तुत सबसेट संस्करण:
2 को मैप किया जाता है 0100 1 तथा 0000 1। (अतिरिक्त बिट का उपयोग करना यहां कड़ाई से आवश्यक नहीं है।)
3 से मैप किया जाता है 1000 00 1,0100 00 1 तथा 0000 00 01
5 से मैप किया जाता है 1000 00 000 1,0010 00 000 1 तथा 0000 00 000 01।
नया लक्ष्य मान बन जाएगा 1110 10 010 01।
यदि मूल समस्या का प्रतिनिधित्व किया जाता है n बिट्स, तब तब्दील समस्या सबसे अधिक है O(n4)बिट्स। मूल समस्या सबसे ज्यादा होगीO(n) प्रत्येक के साथ सबसे अधिक संख्या O(n)बिट्स, तो उन सभी का योग भी ओ (एन) है। रूपांतरित समस्या होगीO(n2) संख्या (प्रत्येक के बाद से n-बिट संख्या में विभाजित है n+1 2-बिट संख्या, उनकी लंबाई सबसे अधिक होने के साथ O(n2) चूंकि हम उपयोग करते हैं nप्रत्येक संख्या के लिए अतिरिक्त बिट्स। तो रूपांतरित समस्या का कुल आकार हैO(n4) बिट्स।