Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมกู้คืนถอดรหัสอาร์เรย์ XORed ใน Python


สมมติว่าเรามี arr อาร์เรย์ที่ซ่อนอยู่โดยมี n จำนวนเต็มไม่เป็นลบ ตอนนี้อาร์เรย์นี้ถูกเข้ารหัสเป็นอาร์เรย์อื่นที่มีความยาว n-1 ดังนั้นที่นี่ enc[i] =arr[i] XOR arr[i+1] ถ้าเรามีการเข้ารหัสอาร์เรย์และจำนวนเต็มก่อน นั่นคือองค์ประกอบแรกของอาร์เรย์จริง เราต้องหาอาร์เรย์เดิม

ดังนั้น หากอินพุตเป็นเหมือน enc =[8,3,2,7] อันดับแรก =4 ผลลัพธ์จะเป็น [4, 12, 15, 13, 10]

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • arr :=อาร์เรย์ที่มีองค์ประกอบเพียงตัวเดียวก่อน

  • สำหรับฉันในช่วง 0 ถึงขนาดของ enc - 1 ทำ

    • ใส่ arr[i] XOR enc[i] ที่ท้าย arr

  • กลับ arr

ตัวอย่าง (Python)

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

def solve(enc, first):
   arr = [first]
   for i in range(0, len(enc)):
      arr.append(arr[i] ^ enc[i])
   return arr

enc = [8,3,2,7]
first = 4
print(solve(enc, first))

อินพุต

[8,3,2,7], 4

ผลลัพธ์

[4, 12, 15, 13, 10]