কম্পিউটার

পাইথনে প্রতিটি প্রশ্নের জন্য সর্বাধিক XOR খোঁজার প্রোগ্রাম


ধরুন আমাদের একটি অ্যারে আছে যাকে n এর আকারের সংখ্যা বলা হয় এবং এর একটি মানও আছে। আমরা নিম্নলিখিত প্রশ্নটি n বার করতে চাই −

  • একটি অ-নেতিবাচক মান k <2^m অনুসন্ধান করুন যাতে সংখ্যা এবং k-এ সমস্ত উপাদানের XOR সর্বাধিক করা হয়। সুতরাং k হল ith প্রশ্নের উত্তর।

  • বর্তমান অ্যারে সংখ্যা থেকে শেষ উপাদানটি সরান।

  • আমাদের একটি অ্যারে উত্তর খুঁজে বের করতে হবে, যেখানে উত্তর[i] হল ith প্রশ্নের উত্তর।

সুতরাং, ইনপুট যদি nums =[0,1,1,3], m =2 এর মত হয়, তাহলে আউটপুট হবে [0,3,2,3], কারণ

  • সংখ্যা =[0,1,1,3], k =0 থেকে 0 XOR 1 XOR 1 XOR 3 XOR 0 =3৷

  • সংখ্যা =[0,1,1], k =3 থেকে 0 XOR 1 XOR 1 XOR 3 =3৷

  • সংখ্যা =[0,1], k =2 থেকে 0 XOR 1 XOR 2 =3।

  • সংখ্যা =[0], k =3 থেকে 0 XOR 3 =3।

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

  • x :=2^m - 1

  • আমি 0 থেকে সংখ্যার আকার - 1 এর রেঞ্জের জন্য, করুন

    • nums[i] :=nums[i] XOR x

    • x :=সংখ্যা[i]

  • রিভার্সালের পর সংখ্যা ফেরত দিন

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

def solve(nums, m):
   x=2**m-1
   for i in range(len(nums)):
      nums[i]^= x
      x = nums[i]
   return(nums[::-1])

nums = [0,1,1,3]
m = 2
print(solve(nums, m))

ইনপুট

[0,1,1,3], 2

আউটপুট

[0, 3, 2, 3]

  1. পাইথনে সর্বোচ্চ বিল্ডিং উচ্চতা খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে প্রতিটি সারির উপাদান ফ্লিপ করে সর্বাধিক যোগফল খুঁজে বের করার জন্য প্রোগ্রাম

  3. প্রতিটি কনডোমিনিয়ামের উচ্চতার জন্য একটি ম্যাট্রিক্স খুঁজে পাওয়ার প্রোগ্রামটি পাইথনে সর্বোচ্চ সম্ভাব্য উচ্চতায় বাড়ানো হয়?

  4. পাইথনে সংলগ্ন সাবয়ারের সর্বাধিক পণ্য খুঁজে বের করার প্রোগ্রাম