इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे।
समस्या कथन - मान लीजिए कि हम जानना चाहते हैं कि 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

सभी चर स्थानीय दायरे में घोषित किए गए हैं और उनके संदर्भ ऊपर दिए गए चित्र में देखे गए हैं।
निष्कर्ष
इस लेख में, हमने सीखा है कि हम एग ड्रॉपिंग पज़ल के लिए पायथन प्रोग्राम कैसे बना सकते हैं।