擲雞蛋難題的 Python 程式
在本文中,我們將學習如何解決下面給出的問題陳述。
問題陳述 − 假設我們想知道一棟 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
所有變數都宣告在區域性範圍內,並且可以在上圖中看到它們的引用。
結論
在本文中,我們學習瞭如何製作擲雞蛋難題的 Python 程式。
廣告