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

পাইথনে XOR করা পারমুটেশন ডিকোড করার প্রোগ্রাম

ধরুন, enc নামে একটি অ্যারে আছে। একটি perm অ্যারে আছে যা প্রথম n (বিজোড়) পজিটিভ ইন্টিজারের পারমুটেশন। এই লিস্টটি enc অ্যারেতে এনকোড করা হয়েছে যেখানে enc[i] = perm[i] XOR perm[i+1]। আমাদের মূল perm অ্যারেটি বের করতে হবে।

উদাহরণ

ইনপুট: enc = [2,5,6,3]

আউটপুট: [7, 5, 0, 6, 5] কারণ [7 XOR 5 XOR 0 XOR 6 XOR 5] = [2, 5, 6, 3]

সমাধানের ধাপসমূহ

  1. n := size of enc
  2. result := size (n+1) array filled with 0
  3. x := 0
  4. for i in range 1 to n+1:
    • x := x XOR i
  5. result[0] := x
  6. for i in range 1 to n, step 2:
    • result[0] := result[0] XOR enc[i]
  7. for i in range 1 to n:
    • result[i] := result[i-1] XOR enc[i-1]
  8. result রিটার্ন করুন।

পাইথন কোড

def solve(enc):
    n = len(enc)
    result = [0] * (n + 1)
    x = 0
    for i in range(1, n + 2):
        x ^= i
    result[0] = x
    for i in range(1, n + 1, 2):
        result[0] ^= enc[i]
    for i in range(1, n + 1):
        result[i] = result[i - 1] ^ enc[i - 1]
    return result

enc = [2, 5, 6, 3]
print(solve(enc))

ইনপুট

[2,5,6,3]

আউটপুট

[7, 5, 0, 6, 5]

ব্যাখ্যা: XOR-এর বৈশিষ্ট্য ব্যবহার করে প্রথম এলিমেন্ট বের করা হয়, তারপর বাকিগুলো secuencia-এ নির্ণয় করা হয়।

  1. পাইথন প্রোগ্রাম - সংখ্যার সুপার ডিজিট বের করুন

  2. পাইথনে বড় সংখ্যার ফ্যাক্টোরিয়াল বের করার প্রোগ্রাম

  3. পাইথনে পলিগনের ক্ষেত্রফল বের করার প্রোগ্রাম

  4. পাইথনে পলিগনের পরিসীমা বের করার প্রোগ্রাম