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

এক্সটেন্ডেড ইউক্লিডিয়ান অ্যালগরিদমের পাইথন প্রোগ্রাম


এই আর্টিকেলে আমরা নিচের সমস্যা সমাধানের কথা শিখব।

সমস্যা: দুটি সংখ্যা দেওয়া আছে, আমাদের সেগুলোর GCD ক্যালকুলেট করে ডিসপ্লে করতে হবে।

GCD (Greatest Common Divisor) দুটি সংখ্যার সবচেয়ে বড় সেই সংখ্যা যা উভয়কেই ভাগ করতে পারে। এখানে আমরা ইউক্লিডিয়ান পদ্ধতি অনুসরণ করি GCD কম্পিউট করতে অর্থাৎ বারবার ভাগ দিয়ে রিমাইন্ডার শূন্য হয়ার পরোঁত থামি। এখানে আমরা রিকার্সনে পাওয়া পূর্বের ভ্যালুতে বেস করে অ্যালগরিদম এক্সটেন্ড করি।

চলুন নিচের ইমপ্লিমেন্টেশনে সমাধানটি পর্যবেক্ষণ করি।

উদাহরণ

# এক্সটেন্ডেড ইউক্লিডিয়ান অ্যালগরিদম
def gcdExtended(a, b, x, y):
    # বেস কেস
    if a == 0:
        x = 0
        y = 1
        return b
    x1 = 1
    y1 = 1  # রেজাল্ট স্টোর
    gcd = gcdExtended(b % a, a, x1, y1)
    # x এবং y আপডেট পূর্বের ক্যালকুলেটেড ভ্যালু দিয়ে
    x = y1 - (b / a) * x1
    y = x1
    return gcd

x = 1
y = 1
a = 11
b = 15
g = gcdExtended(a, b, x, y)
print("gcd of", a, "&", b, "is =", g)

আউটপুট

gcd of 11 & 15 is = 1

এক্সটেন্ডেড ইউক্লিডিয়ান অ্যালগরিদমের পাইথন প্রোগ্রাম

সभी ভেরিয়েবল লোকাল স্কোপে ঘোষণা করা হয়েছে এবং তাদের রেফারেন্স উপরের চিত্রে দেখা যাচ্ছে।

উপসংহার

এই আর্টিকেলে আমরা শিখেছি কিভাবে এক্সটেন্ডেড ইউক্লিডিয়ান অ্যালগরিদমের পাইথন প্রোগ্রাম লিখতে হয়।

  1. পাইথনে চক্রবৃদ্ধি বunga (Compound Interest) প্রোগ্রাম

  2. পাইথন প্রোগ্রাম: সিম্পল ইন্টারেস্ট ক্যালকুলেশন

  3. পাইথন প্রোগ্রাম: সিলেকশন সোর্ট অ্যালগরিদম

  4. পাইথন প্রোগ্রাম: দুইটির অধিক (অথবা অ্যারে) সংখ্যার GCD বের করা