掷鸡蛋难题的 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 程序。
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP