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

বম ডিফিউজ করার জন্য কোড ডিক্রিপ্ট করার প্রোগ্রাম

একটি বম ডিফিউজ করতে হবে। একটি সার্কুলার অ্যারে code (দৈর্ঘ্য n) এবং একটি কী k দেওয়া আছে। প্রতিটি সংখ্যা একসাথে রিপ্লেস করতে হবে:

  • k > 0: i-তম সংখ্যা = পরবর্তী kটি সংখ্যার যোগফল

  • k < 0: i-তম সংখ্যা = পূর্বের |k|টি সংখ্যার যোগফল

  • k = 0: i-তম সংখ্যা = 0

সার্কুলার মানে code[n-1]-এর পর code[0], code[0]-এর আগে code[n-1]। ডিক্রিপ্টেড কোড রিটার্ন করুন।

ইনপুট: code = [8,2,3,5], k = 3 → আউটপুট: [10, 16, 15, 13]।

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

  • decode := []

  • প্রতিটি i = 0 থেকে n-1:

    • যদি k > 0: sum = next k elements (mod n)
    • যদি k == 0: sum = 0
    • যদি k < 0: sum = previous |k| elements (mod n)
    • decode.append(sum)
  • decode রিটার্ন করুন

উদাহরণ (Python)

def solve(code, k):
    decode = []
    n = len(code)
    for i in range(n):
        if k > 0:
            s = 0
            j = i + 1
            m = k
            while m:
                s += code[j % n]
                m -= 1
                j += 1
            decode.append(s)
        elif k == 0:
            decode.append(0)
        else:
            s = 0
            j = i - 1
            m = k
            while m:
                s += code[j % n]
                m += 1
                j -= 1
            decode.append(s)
    return decode

code = [8, 2, 3, 5]
k = 3
print(solve(code, k))

ইনপুট

[8,2,3,5], 3

আউটপুট

[10, 16, 15, 13]
  1. পাইথনে ডায়रेक्टেড গ্রাফকে উল্টে ফেলার প্রোগ্রাম

  2. পাইথন প্রোগ্রামে অ্যারের যোগফল বের করা

  3. পাইথনে ম্যাট্রিক্সের ট্রান্সপোজ বের করা

  4. পাইথনে অ্যারের যোগফল বের করা