কম্পিউটার

বিটওয়াইজ এবং পাইথনে সমস্ত জোড়ার XOR যোগফল খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের দুটি অ্যারে আছে arr1 এবং arr2। একটি তালিকার XOR যোগফল হল এর সমস্ত উপাদানের বিটওয়াইজ XOR। যদি তালিকায় শুধুমাত্র একটি উপাদান থাকে, তাহলে এর XOR যোগফলটি নিজেই উপাদান হবে। এখন, বিবেচনা করুন তালিকাটিতে প্রতিটি সূচক জোড়ার (i, j) জন্য arr1[i] এবং arr2[j] (bitwise AND) এর ফলাফল রয়েছে যেখানে 0 <=i

সুতরাং, যদি ইনপুটটি arr1 =[5,3,4] arr2 =[2,6] এর মত হয়, তাহলে আউটপুট হবে 0 কারণ তালিকাটি হল [5 এবং 2, 5 এবং 6, 3 এবং 2, 3 এবং 6। , 4 এবং 2, 4 এবং 6] =[0, 4, 2, 2, 0, 4], এখন XOR যোগফল হল [0 XOR 4 XOR 2 XOR 2 XOR 0 XOR 4] =0

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

  • xor1 :=0

  • xor2 :=0

  • প্রতিটি a এর জন্য a in arr1, do

    • xor1 :=xor1 XOR a

  • প্রতিটি a in arr2 এর জন্য করুন

    • xor2 :=xor2 XOR a

  • xor1 এবং xor2

    ফেরত দিন

উদাহরণ

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

def solve(arr1, arr2):
   xor1 = 0
   xor2 = 0
   for a in arr1:
      xor1 ^= a
   for a in arr2:
      xor2 ^= a
   return xor1 & xor2

arr1 = [5,3,4]
arr2 = [2,6]
print(solve(arr1, arr2))

ইনপুট

[5,3,4], [2,6]

আউটপুট

0

  1. পাইথন প্রোগ্রামে অ্যারের সমষ্টি খুঁজুন

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

  3. অ্যারের যোগফল খুঁজে পেতে পাইথন প্রোগ্রাম

  4. পাইথন প্রোগ্রাম একটি তালিকার সমস্ত জোড়ার মধ্যে পরম পার্থক্যের যোগফল খুঁজে বের করতে