কম্পিউটার টিউটোরিয়াল

পাইথনে পারমুটেশন


मान लीजिए हमारे पास विशिष्ट पूर्णांकों का एक संग्रह है; हमें सभी संभावित क्रमपरिवर्तन ढूंढने हैं। इसलिए यदि सरणी [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. দেওয়া স্ট্রিংয়ের সকল পারমিউটেশন প্রিন্ট করার পাইথন প্রোগ্রাম

  2. পাইথনে issuperset() ফাংশন

  3. পাইথনে Quine প্রোগ্রাম (স্ব-প্রजनনকারী কোড)

  4. পাইথনে লিস্টের সকল পারমিউটেশন (Permutation) বের করা