इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे।
समस्या कथन
मान लीजिए हम जानना चाहते हैं कि 40-मंजिला इमारत की कौन सी मंजिलें अंडे गिराने के लिए सुरक्षित हैं, और कौन सी लैंडिंग पर अंडे को नुकसान पहुंचाएंगी, अंडों की मदद से। हमें कहानियों की जांच के लिए न्यूनतम परीक्षणों की संख्या प्रदर्शित करने की आवश्यकता है।
उदाहरण
# डायनामिक प्रोग्रामिंग
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
निष्कर्ष
इस लेख में हमने एग ड्रॉपिंग पज़ल के पायथन प्रोग्राम के बारे में सीखा।