Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में पर्मुटेशन्स


मान लीजिए हमारे पास विशिष्ट पूर्णांकों का एक संग्रह है; हमें सभी संभावित क्रमचय ढूंढने हैं। इसलिए यदि सरणी [2,1,3] जैसी है, तो परिणाम [[1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]] होगा।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • हम पुनरावर्ती दृष्टिकोण का उपयोग करेंगे, यह सूची, start, curr और res बनाएगा
  • यदि start > सूची की लंबाई - 1, तो curr को res में जोड़ें, और वापस लौटें
  • i के लिए start से दी गई सूची की लंबाई - 1 तक की रेंज में
    • सूची में मौजूद तत्वों को इंडेक्स start और (start + (i - start)) पर स्वैप करें
    • permutation(list, start + 1, curr + [list[start]], res)
    • सूची में मौजूद तत्वों को इंडेक्स start और (start + (i - start)) पर स्वैप करें
    • प्रारंभ में permutation(arr, 0, [], res) कॉल करें

उदाहरण (पायथन)

बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें -

class Solution(object):    def permute(self, nums):       result = []       self.permute_util(nums,0,[],result)       return result    def permute_util(self,given_list,start,curr,result):       if start > len(given_list)-1:          #print(curr)          result.append(curr)          return       for i in range(start,len(given_list)):          self.swap(given_list,start,start+(i-start)) self.permute_util(given_list,start+1,curr+[given_list[start]],result)          #print(given_list)          self.swap(given_list, start, start + (i - start))    def swap(self,nums,index1,index2):       temp = nums[index1]       nums[index1] = nums[index2]       nums[index2] = temp ob1 = Solution() print(ob1.permute([1,2,3,4]))

इनपुट

[1,2,3,4]

आउटपुट

[[1,2,3,4],[1,2,4,3],[1,3,2,4],[1,3,4,2],[1,4,3,2],[1,4,2,3],[2,1,3,4],[2,1,4,3],[2,3,1,4],[2,3,4,1],[2,4,3,1],[2,4,1,3],[3,2,1,4],[3,2,4,1],[3,1,2,4],[3,1,4,2],[3,4,1,2],[3,4,2,1],[4,2,3,1],[4,2,1,3],[4,3,2,1],[4,3,1,2],[4,1,3,2],[4,1,2,3]]

  1. पायथन प्रोग्राम: दी गई स्ट्रिंग के सभी क्रमपरिवर्तन प्रिंट करें पायथन प्रोग्राम: दी गई स्ट्रिंग के सभी क्रमपरिवर्तन प्रिंट करें

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक स्ट्रिंग दी गई है, हमें स्ट्रिंग के सभी संभावित क्रमपरिवर्तन प्रदर्शित करने हैं। उदाहरण # रूपांतरण def toString(List): return .join(List) # क्रमपरिवर्तन def permute(a, l, r): if l == r: print(toString(a))

  1. पायथन में issuperset() फंक्शन पायथन में issuperset() फंक्शन

    इस लेख में, हम पायथन में issuperset() और विभिन्न क्षेत्रों में इसके कार्यान्वयन के बारे में जानेंगे।यह मेथड बूलियन True वापस करता है यदि सेट B के सभी तत्व सेट A के सभी तत्वों को समाहित करते हैं जिसे तर्क के रूप में पारित किया जाता है और झूठा वापस करता है यदि A के सभी तत्व B में मौजूद नहीं हैं।इसका म

  1. - पायथन में लिस्ट के सभी परम्यूटेशन कैसे जनरेट करें?

    आप पायथन में लिस्ट के सभी परम्यूटेशन खोजने के लिए itertools पैकेज के permutations मेथड का उपयोग कर सकते हैं। आप इसका उपयोग इस प्रकार कर सकते हैं: उदाहरण import itertools perms = list(itertools.permutations([1, 2, 3])) print(perms) आउटपुट यह आउटपुट देगा: [(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1),