मान लीजिए हमारे पास तीन संख्याएं i, j और k और एक और संख्या n है। हमें उन सभी ट्रिपलेट्स (i, j, k) की सूची ढूंढनी है जिनके लिए i+j+k n के बराबर नहीं है। हमें इस समस्या को लिस्ट कॉम्प्रिहेंशन रणनीति का उपयोग करके हल करना होगा।
उदाहरण के लिए, यदि इनपुट i = 1, j = 1, k = 2 और n = 3 है, तो आउटपुट [[0, 0, 0], [0, 0, 1], [0, 0, 2], [0, 1, 0], [0, 1, 1], [1, 0, 0], [1, 0, 1], [1, 1, 0], [1, 1, 2]] होगा।
हल करने के चरण
arr =ट्रिपलेट्स[x, y, z]का ऐरे सभीxके लिए 0 सेiतक की रेंज में, सभीyके लिए 0 सेjतक की रेंज में और सभीzके लिए 0 सेkतक की रेंज में, जबx+y+z != nहो।
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
def solve(i, j, k, n):
arr = [[x, y, z] for x in range(i+1) for y in range(j+1) for z in range(k+1) if x+y+z != n]
return arr
i = 1
j = 1
k = 2
n = 3
print(solve(i, j, k, n))
इनपुट
1, 1, 2, 3
आउटपुट
[[0, 0, 0], [0, 0, 1], [0, 0, 2], [0, 1, 0], [0, 1, 1], [1, 0, 0], [1, 0, 1], [1, 1, 0], [1, 1, 2]]