संख्याओं की एक सूची में हम यह पता लगाना चाहते हैं कि एक निश्चित योग देने के लिए कौन से तीन तत्व जुड़ सकते हैं। हम इसे त्रिगुण कहते हैं। और सूची में ऐसे कई ट्रिपल हो सकते हैं। उदाहरण के लिए, योग 10 को संख्या 1,6,3 के साथ-साथ 1,5,4 के रूप में उत्पन्न किया जा सकता है। इस लेख में हम देखेंगे कि दी गई संख्याओं की सूची से ऐसे सभी त्रिगुणों का पता कैसे लगाया जाए।
श्रेणी और अस्थायी चर का उपयोग करना
यह पारंपरिक दृष्टिकोण है जिसमें हम अस्थायी चर बनाएंगे। ये चर सूची से तत्वों को पकड़ेंगे और जांचेंगे कि उनका योग आवश्यक मूल्य के बराबर है या नहीं। फिर यह ऐसे चरों को अंतिम परिणाम सेट में जमा करता रहेगा।
उदाहरण
def SumTriplets(listA, sum):
trpltcnt = 0
res = []
for i in range(0, len(listA) - 1):
s = set()
tmp = []
# Adding first element
tmp.append(listA[i])
current_sum = sum - listA[i]
for j in range(i + 1, len(listA)):
if (current_sum - listA[j]) in s:
trpltcnt += 1
# Adding second element
tmp.append(listA[j])
# Adding third element
tmp.append(current_sum - listA[j])
# Appending tuple to the final list
res.append(tuple(tmp))
tmp.pop(2)
tmp.pop(1)
s.add(listA[j])
return res
listA = [11,12,13,14,15,16,17,18,19,20]
print("Required triplets:\n",SumTriplets(listA, 40)) आउटपुट
उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -
Required triplets: [(11, 15, 14), (11, 16, 13), (11, 17, 12), (12, 15, 13)]
उदाहरण
from itertools import combinations
listA = [11,12,13,14,15,16,17,18,19,20]
def fsum(val):
return sum(val) == 40
res = list(filter(fsum,list(combinations(listA, 3))))
print("Required triplets:\n",res) आउटपुट
उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -
Required triplets: [(11, 12, 17), (11, 13, 16), (11, 14, 15), (12, 13, 15)]