কম্পিউটার

পাইথনে একটি অ্যারে এলোমেলো করুন


ধরুন আমাদের একটি অ্যারে A আছে, আমাদের ডুপ্লিকেট ছাড়াই সংখ্যার সেট এলোমেলো করতে হবে। সুতরাং যদি ইনপুটটি [1,2,3] এর মতো হয়, তবে শাফলিং এর জন্য, এটি হবে [1,3,2], রিসেট করার পরে, যদি আমরা আবার এলোমেলো করি, এটি হবে [2,3,1]

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • বিভিন্ন পদ্ধতি থাকবে। এগুলো হল init(), reset(), shuffle()। এগুলো নিচের মত কাজ করবে -

  • init হবে −

    এর মত
  • মূল :=প্রদত্ত অ্যারের একটি অনুলিপি

  • তাপমাত্রা :=সংখ্যা

  • সূচক :=0 থেকে সংখ্যার দৈর্ঘ্যের সংখ্যার তালিকা – 1

  • reset() আসল অ্যারে ফেরত দেবে

  • shuffle() হবে −

    এর মত
  • যদি তাপমাত্রার দৈর্ঘ্য 0 হয়, তাহলে খালি অ্যারে ফেরত দিন

  • i :=সূচক অ্যারে থেকে এলোমেলোভাবে একটি সূচক পছন্দ করুন, j :=সূচক অ্যারে থেকে এলোমেলোভাবে অন্য একটি সূচক চয়ন করুন

  • ইনডেক্স i এবং j

    -এ উপস্থিত উপাদানগুলিকে অদলবদল করুন
  • রিটার্ন টেম্প

  • getAllPermutation() নামক আরেকটি পদ্ধতিতে সংখ্যা লাগবে, i, প্রাথমিকভাবে i =0, এর মত হবে −

  • curr :=i

  • যদি i =সংখ্যার দৈর্ঘ্য, তাহলে

    • অল

      নামক অন্য অ্যারেতে nums অ্যারের একটি অনুলিপি সন্নিবেশ করান
    • ফেরত

  • j এর জন্য :=curr থেকে সংখ্যার দৈর্ঘ্য

    • সূচক j এবং nums থেকে curr এ উপাদানগুলি অদলবদল করুন

    • কল getAllPermutation(সংখ্যা, curr + 1)

    • সূচক j এবং nums থেকে 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())

ইনপুট

Initialize with [1,2,3] , then call shuffle(), reset() and shuffle()

আউটপুট

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

  1. পাইথনে সাজানো অ্যারে মার্জ করুন

  2. পাইথনে উত্তরাধিকার

  3. পাইথনে ডায়নামিক অ্যারে বাস্তবায়ন

  4. পাইথনে কংক্রিট ব্যতিক্রম