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