এই নিবন্ধে, আমরা নীচে দেওয়া সমস্যার বিবৃতিটির সমাধান সম্পর্কে শিখব।
সমস্যা বিবৃতি − ধরুন, আমরা জানতে চাই যে 40 তলা বিল্ডিংয়ের কোন গল্পগুলি থেকে ডিম ফেলা নিরাপদ, এবং এর মধ্যে কোনটি ডিমের সাহায্যে ল্যান্ডিংয়ে ডিমগুলিকে ক্ষতিগ্রস্থ করবে। গল্পগুলি চেক করার জন্য আমাদের ন্যূনতম সংখ্যক পথ প্রদর্শন করতে হবে৷
এখন নিচের বাস্তবায়নে সমাধানটি পর্যবেক্ষণ করা যাক -
উদাহরণ
# dynamic programming
INT_MAX = 32767
# to get minimum trials
def eggDrop(n, k):
# intialization
eggFloor = [[0 for x in range(k + 1)] for x in range(n + 1)]
# base case
for i in range(1, n + 1):
eggFloor[i][1] = 1
eggFloor[i][0] = 0
# We always need j trials
for j in range(1, k + 1):
eggFloor[1][j] = j
# Fill rest of the entries
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]
# main
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

সমস্ত ভেরিয়েবল স্থানীয় সুযোগে ঘোষণা করা হয়েছে এবং তাদের রেফারেন্স উপরের চিত্রে দেখা যাচ্ছে।
উপসংহার
এই নিবন্ধে, আমরা শিখেছি কিভাবে আমরা ডিম ড্রপিং পাজলের জন্য একটি পাইথন প্রোগ্রাম তৈরি করতে পারি।