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

এগ ড্রপিং পাজলের পাইথন প্রোগ্রাম


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

সমস্যা: ধরি আমরা জানতে চাই ৪০-মंजিলা বিল্ডিং-এর কোন ফ্লোর থেকে ডিম ফেললে সেফ থাকবে এবং কোন ফ্লোর থেকে ডিম টুটবে। ডিমের সাহায্যে আমাদের মিনিমাম ট্রায়াল সংখ্যা বের করতে হবে যাতে সব ফ্লোর চেক করা যায়।

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

উদাহরণ

# ডাইনামিক প্রোগ্রামিং
INT_MAX = 32767

# মিনিমাম ট্রায়াল পাওয়ার জন্য
def eggDrop(n, k):
    # ইলিশিয়ালাইজেশন
    eggFloor = [[0 for x in range(k + 1)] for x in range(n + 1)]
    # বেস কেস
    for i in range(1, n + 1):
        eggFloor[i][1] = 1
        eggFloor[i][0] = 0
    # আমাদের সবসময় j ট্রায়াল লাগে
    for j in range(1, k + 1):
        eggFloor[1][j] = j
    # বাকি এন্ট্রি ফিল
    for i in range(2, n + 1):
        for j in range(2, k + 1):
            eggFloor[i][j] = INT_MAX
            for x in range(1, j + 1):
                res = 1 + max(eggFloor[i-1][x-1], eggFloor[i][j-x])
                if res < eggFloor[i][j]:
                    eggFloor[i][j] = res
    return eggFloor[n][k]

# মেইন
n = 4
k = 40
print("Minimum number of trials in worst case scenario with " + str(n) + " eggs and " + str(k) + " floors is " + str(eggDrop(n, k)))

আউটপুট

Minimum number of trials in worst case scenario with 4 eggs and 40 floors is 6

এগ ড্রপিং পাজলের পাইথন প্রোগ্রাম

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

উপসংহার

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

  1. অ্যারে রোটেশনের পাইথন প্রোগ্রাম

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

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

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