याद रखें कि एक सेट डुप्लिकेट के बिना unordered है।
परिभाषा एक एन -uniquely additive सेट एस जिसकी लंबाई है कश्मीर एक सेट ऐसा है कि सभी एन में -length सबसेट एस अलग नंबरों के लिए राशि। दूसरे शब्दों में, S के सभी N -length सबसेट के योग अलग-अलग हैं।
उद्देश्य एक सरणी / इनपुट के रूप में सेट और किसी N
फ़ंक्शन या किसी उचित प्रारूप में एक पूर्ण कार्यक्रम के लिए एक संख्या को देखते हुए, एक सत्य या गलत मूल्य को खोजने या वापस लाने या (गलत के लिए गलत है) यह दर्शाता है कि इनपुट एन है या नहीं - विशिष्ट रूप से additive।
आप यह मान सकते हैं कि प्रत्येक तत्व केवल एक बार ही दिखाई देता है और प्रत्येक संख्या आपकी भाषा के मूल डेटाटाइप के भीतर है। यदि आवश्यकता हो, तो आप यह भी मान सकते हैं कि इनपुट क्रमबद्ध है। अंतिम, आप ऐसा मान सकते हैं 0 < N <= K
।
उदाहरण
आइए सेट पर विचार करें S = {1, 2, 3, 5}
और N = 2
। यहाँ सभी अद्वितीय जोड़ियों के सभी योग हैं S
(अद्वितीय लोगों के लिए रकम के लिए ब्याज के केवल एक ही हैं):
1 + 2 = 3
1 + 3 = 4
1 + 5 = 6
2 + 3 = 5
2 + 5 = 7
3 + 5 = 8
हम देख सकते हैं कि आउटपुट में कोई डुप्लिकेट नहीं है, इसलिए एस 2-विशिष्ट एडिटिव है।
आइए अब सेट पर विचार करें T = {12, 17, 44, 80, 82, 90}
और N = 4
। यहाँ लंबाई चार के सभी संभावित योग हैं:
12 + 17 + 44 + 80 = 153
12 + 17 + 44 + 82 = 155
12 + 17 + 44 + 90 = 163
12 + 17 + 80 + 82 = 191
12 + 17 + 80 + 90 = 199
12 + 17 + 82 + 90 = 201
12 + 44 + 80 + 82 = 218
12 + 44 + 80 + 90 = 226
12 + 44 + 82 + 90 = 228
12 + 80 + 82 + 90 = 264
17 + 44 + 80 + 82 = 223
17 + 44 + 80 + 90 = 231
17 + 44 + 82 + 90 = 233
17 + 80 + 82 + 90 = 269
44 + 80 + 82 + 90 = 296
वे सभी अनूठे हैं, और इसलिए टी 4-विशिष्ट योगात्मक है।
परीक्षण के मामलों
[members], N => output
[1, 4, 8], 1 => true
[1, 10, 42], 1 => true ; all sets trivially satisfy N = 1
[1, 2, 3, 4], 3 => true
[1, 2, 3, 4, 5], 5 => true
[1, 2, 3, 5, 8], 3 => true
[1, 2, 3, 4, 5], 2 => false ; 1 + 4 = 5 = 2 + 3
[-2, -1, 0, 1, 2], 3 => false ; -2 + -1 + 2 = -1 = -2 + 0 + 1
[1, 2, 3, 5, 8, 13], 3 => false ; 1 + 2 + 13 = 16 = 3 + 5 + 8
[1, 2, 4, 8, 16, 32], 3 => true
[1, 2, 4, 8, 16, 32], 4 => true
[1, 2, 4, 8, 16, 32], 5 => true
[1, 2, 4, 8, 16, 32], 6 => true
[3, 4, 7, 9, 12, 16, 18], 6 => true
[3, 4, 7, 9, 12, 16, 18], 3 => false ; 3 + 4 + 12 = 19 = 3 + 7 + 9
falsey
?
N <= K
?