python 玻璃球在哪摔碎

d={}
def T(level, ball):
    if d.get((level, ball)):
        return d[(level, ball)]
    if ball is 1:
        return level
    elif level is 1:
        return 1
    elif level is 0:
        return 0
    res_list=[]
    for l in range(1,level+1):
        res_list.append(max(T(l-1, ball-1), T(level-l, ball)) + 1 )
    res = min(res_list)
    d[(level, ball)] = res
    return res
print(T(39,2))

原文地址:https://www.cnblogs.com/KakagouLT/p/9595487.html

时间: 2024-08-29 09:29:22

python 玻璃球在哪摔碎的相关文章

100层的大楼,用2个玻璃球,确定在那层丢下玻璃球刚好会碎?【?】

有一栋100层高的大楼,给你两个完全相同的玻璃球.假设从某一层开始,丢下玻璃球会摔碎.那么怎么利用手中的两个球,用什么最优策略知道这个临界的层是第几层??? 解答如下: http://blog.csdn.net/lzshlzsh/article/details/5951447 投掷次数分布不均.按最坏情况估计,这种方法就多做了几次.为了使最坏情况的投掷数最小,我们希望无论临界段在哪里,总的投掷数都不变,也就是说投掷数均匀分布.      接下来的解决方案就很容易想出了:既然第一步(确定临界段)的

你拿着两个鸡蛋站在 100 层的大楼上。鸡蛋或许结实到从楼顶掉下也不会摔破。或许很易碎,在一楼摔下就破碎。

你拿着两个鸡蛋站在 100 层的大楼上.鸡蛋或许结实到从楼顶掉下也不会摔破.或许很易碎,在一楼摔下就破碎.请问最少试验多少次可以确保找出鸡蛋不会被摔碎的最高楼层? 注意:1.只有两个蛋2.确保找出 一开始,我们先用猜的吧:我猜测,鸡蛋不会被摔碎的最高楼层是27层,于是从27层摔了一个鸡蛋下去.结果有两种:1.鸡蛋碎了.那么,鸡蛋不会被摔碎的最高楼层,在第1层至第27层之间.此时只剩下一个蛋了.为了确保找出,这个蛋,就不能猜了.因为,万一又猜错了,就没有鸡蛋可以试验,也就无法确保找出鸡蛋不会被摔碎

[面试题][总结]100层楼丢玻璃球测试临界可破层数,用两个一模一样的球来测试计算尽可能少的次数?

1 题目描述  有一栋100层高的大楼,给你两个完全相同的玻璃球.假设从某一层开始,丢下玻璃球会摔碎.那么怎么利用手中的两个球,用什么最优策略知道这个临界的层是第几层? 2 解法汇总 2.1 递推方法一 第一次扔k层 ,则次数time=1,第二次,如果破了,要试从1到k-1层,此时需要Time=time+k-1=k 次:如果没破,还要扔k层,则次数为time=2;如果破了,还要扔k+1到2k-1层,再加上2 即Time=Time+k-2=k.还是K次:注意每多扔一次 少测试一层.次数却多一次.实

nbuoj2786 玻璃球

题目:http://www.nbuoj.com/v8.83/Problems/Problem.php?pid=2786 用2个玻璃球找到从一100层的大楼的某一层落下刚好会摔碎,如何制定最优策略? 别人的总结已经很(?•??•?)??了 https://www.zhihu.com/question/27547892/answer/131239272 https://www.cnblogs.com/kuliuheng/p/11595153.html 代码很短,主要wa点在于有没有看出玻璃球碎了就不

为什么蚂蚁怎么都摔不死?

北冥有鱼 ,理论物理Ph.D. 3208 人赞同 谢邀.有一个数学定律保证了这只蚂蚁从高空摔下来不会摔死.这个定律的数学非常简单,大家都能懂,它叫做“平方-立方定律(Square-cube law)”. 这个是一个广泛应用的数学原理,它描述了物体表面积随着体积变化的规律.具体内容是:当物体尺寸变大时,体积按三次幂增加,而表面积按二次幂增加,也就是说,它的体积增长比表面积增长更快.别看这个定律简单,它的应用可不少. 在生物学中,肌肉的截面按二次幂增大,而肌肉的质量却是按三次幂增大.因为肌肉的强度跟

Super Egg Drop

一道陈题. 100 层楼 2 个玻璃球 起因是窥室友手机屏, 看到他群里有人问一个经典问题. 两个一模一样的玻璃球, 两个玻璃球如果从一定高度掉落到地上会被摔碎, 如果在这个高度以下往下扔怎么都不会碎, 现在已知这个恰巧摔碎的高度范围在 1 层楼到 100 层楼之间, 如何用最少的试验次数, 用这两个玻璃球测试出玻璃球恰好摔碎的楼高呢?1 当只剩 1 个球时, 只能一层一层往上测试. 第 1 个球的任务是减少第 2 个球所需测试的次数. 直观上讲, 第 1 个球测试点的间隔要越来越小, 这样第

算法(第四版)C#题解——1.4

写在前面 整个项目都托管在了 Github 上:https://github.com/ikesnowy/Algorithms-4th-Edition-in-Csharp 这一节内容可能会用到的库文件有 Measurement 和 TestCase,同样在 Github 上可以找到. 善用 Ctrl + F 查找题目. 习题&题解 1.4.1 题目 证明从 N 个数中取三个整数的不同组合总数为 N(N - 1)(N - 2) / 6. 解答 即为证明组合计算公式: C(N, 3) = N! / [

Chernobyl’ Eagle on a Roof(鹰蛋坚固度)

链接 Chernobyl’ Eagle on a Roof 题意 引用论文题意:有一堆共 M 个鹰蛋,一位教授想研究这些鹰蛋的坚硬度 E.他是通过不断从一幢 N 层的楼上向下扔鹰蛋来确定 E 的.当鹰蛋从第 E 层楼及以下楼层落下时是不会碎的,但从第(E+1)层楼及以上楼层向下落时会摔碎.如果鹰蛋未摔碎,还可以继续使用:但如果鹰蛋全碎了却仍未确定 E,这显然是一个失败的实验.教授希望实验是成功的.例如:若鹰蛋从第 1 层楼落下即摔碎,E=0:若鹰蛋从第 N 层楼落下仍未碎,E=N.这里假设所有的

鸡蛋的硬度

描述 最近XX公司举办了一个奇怪的比赛:鸡蛋硬度之王争霸赛.参赛者是来自世 界各地的母鸡,比赛的内容是看谁下的蛋最硬,更奇怪的是XX公司并不使用什么精密仪器来测量蛋的硬度,他们采用了一种最老土的办法--从高度扔鸡蛋--来 测试鸡蛋的硬度,如果一次母鸡下的蛋从高楼的第a层摔下来没摔破,但是从a+1层摔下来时摔破了,那么就说这只母鸡的鸡蛋的硬度是a.你当然可以找出各种 理由说明这种方法不科学,比如同一只母鸡下的蛋硬度可能不一样等等,但是这不影响XX公司的争霸赛,因为他们只是为了吸引大家的眼球,一个个