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

पायथन में ऐरे को शफल करें


मान लीजिए हमारे पास एक ऐरे A है, हमें डुप्लिकेट के बिना नंबरों के एक सेट को शफल करना है। इसलिए यदि इनपुट [1,2,3] जैसा है, तो शफलिंग के लिए, यह [1,3,2] होगा, रीसेट करने के बाद, यदि हम फिर से शफल करते हैं, तो यह [2,3,1] होगा।

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

  • अलग-अलग मेथड्स होंगे। ये init(), reset(), shuffle() हैं। ये नीचे की तरह कार्य करेंगे -

  • init इस तरह होगा -

  • original := दिए गए ऐरे की एक कॉपी

  • temp := nums

  • indices := 0 से nums की लंबाई - 1 तक नंबरों की एक लिस्ट

  • reset() मूल ऐरे लौटाएगा

  • shuffle() इस तरह होगा -

  • यदि temp की लंबाई 0 है, तो खाली ऐरे लौटाएं

  • i := indices ऐरे से रैंडमली एक इंडेक्स चुनें, j := indices ऐरे से रैंडमली दूसरा इंडेक्स चुनें

  • इंडेक्स i और j पर मौजूद एलिमेंट्स को स्वैप करें

  • temp लौटाएं

  • getAllPermutation() नामक एक और मेथड nums, i लेगा, प्रारंभ में i = 0, यह इस तरह होगा -

  • curr := i

  • यदि i = nums की लंबाई, तो

    • nums ऐरे की एक कॉपी all नामक दूसरे ऐरे में इन्सर्ट करें

    • लौटें

  • j := curr से nums की लंबाई तक

    • nums से इंडेक्स j और curr पर एलिमेंट्स स्वैप करें

    • getAllPermutation(nums, curr + 1) कॉल करें

    • nums से इंडेक्स j और curr पर एलिमेंट्स स्वैप करें

उदाहरण

import random
class Solution(object):
    def __init__(self, nums):
        self.original = [x for x in nums]
        self.temp = nums
        self.indices = [x for x in range(len(nums))]
    def reset(self):
        return self.original
    def shuffle(self):
        if not len(self.temp):
            return []
        i = random.choice(self.indices)
        j = random.choice(self.indices)
        self.temp[i], self.temp[j] = self.temp[j], self.temp[i]
        return self.temp

ob = Solution([1,2,3])
print(ob.shuffle())
print(ob.reset())
print(ob.shuffle())

इनपुट

[1,2,3] से इनिशियलाइज़ करें, फिर shuffle(), reset() और shuffle() कॉल करें

आउटपुट

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

  1. पायथन में इनहेरिटेंस (Inheritance) पायथन में इनहेरिटेंस (Inheritance)

    इस लेख में, हम पायथन 3.x या उससे पहले के संस्करण में इनहेरिटेंस और क्लासेस को एक्सटेंड करने के बारे में जानेंगे।इनहेरिटेंस वास्तविक दुनिया के संबंधों को अच्छी तरह से दर्शाता है, पुन: प्रयोज्यता प्रदान करता है और ट्रांजिटिविटी का समर्थन करता है। यह तेज़ विकास समय, आसान रखरखाव और विस्तार में आसानी प्र

  1. - Python में डायनामिक एरे का कार्यान्वयन

    डायनामिक एरे Python में, एक सूची, सेट और डिक्शनरी म्यूटेबल ऑब्जेक्ट हैं। जबकि संख्या, स्ट्रिंग, और टपल इम्यूटेबल ऑब्जेक्ट हैं। म्यूटेबल ऑब्जेक्ट का मतलब है कि हम सूची, सेट या डिक्शनरी से आइटम जोड़/हटा सकते हैं, हालांकि, यह इम्यूटेबल ऑब्जेक्ट जैसे टपल या स्ट्रिंग के मामले में सच नहीं है। Python में

  1. - पायथन में कॉन्क्रीट एक्सेप्शन्स

    पायथन में कुछ सामान्य अपवाद होते हैं जो विभिन्न प्रोग्राम्स में उठाए जाते हैं। ये प्रोग्रामर द्वारा स्पष्ट रूप से या पायथन इंटरप्रेटर द्वारा निहित रूप से उठाए जा सकते हैं। कुछ प्रमुख अपवाद निम्नलिखित हैं:AssertionError अपवादजब कोई assert स्टेटमेंट फेल होता है तो AssertionError उठता है। पायथन में हम