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

পাইথনে দুটি সংখ্যার শিফটেড টেবিলের মধ্যবর্তী ন্যূনতম পার্থক্য

দুটি সংখ্যা p এবং q দেওয়া আছে। তাদের অসীম গুণন টেবিল (multiplication table) আছে। এই টেবিলগুলো r এবং s পরিমাণ শিফট (shift) করা হয়েছে (r, s ≥ 0)। শিফটেড টেবিলের যেকোনো দুটি पदের মধ্যে ন্যূনতম পার্থক্য বের করতে হবে।

উদাহরণ

ইনপুট: p = 7, q = 17, r = 6, s = 3

টেবিল ৭: [7, 14, 21, 28, 35, 42, 49, ...] → শিফটেড: [13, 20, 27, 34, 41, 48, 55, ...]

টেবিল ১৭: [17, 34, 51, 68, 85, 102, 119, ...] → শিফটেড: [20, 37, 54, 71, 88, 105, 121, ...]

ন্যূনতম পার্থক্য = 20 - 20 = ০

আউটপুট: ০

সমাধানের পদ্ধতি

  1. g = gcd(p, q) বের করুন।
  2. difference = |r - s| % g হিসাব করুন।
  3. উত্তর = min(difference, g - difference)

এই ফর্মুলা মডুলার αριথমেটিক (modular arithmetic) ও চাইনিজ রিমেইন্ডার থিওরেম (Chinese Remainder Theorem) এর ওপর ভিত্তি করে কাজ করে।

পাইথন কোড

import math

def get_minimum_diff(p, q, r, s):
    g = math.gcd(p, q)
    difference = abs(r - s) % g
    return min(difference, g - difference)

p = 7
q = 17
r = 6
s = 3
print(get_minimum_diff(p, q, r, s))

ইনপুট

7, 17, 6, 3

আউটপুট

0
  1. পাইথনে দুটি স্ট্রিং সমান করার জন্য ন্যূনতম প্রি-প্রসেসিং মুভ গণনা

  2. পাইথনে তিনটি সংখ্যার মধ্যে সর্বোচ্চ মান বের করা

  3. পাইথনে কোনো সংখ্যা ২-এর ঘাত কিনা চেক করা

  4. পাইথনে দুটি লিস্টের পার্থক্য (Difference) বের করার প্রোগ্রাম