目录
玻璃球与楼层
题目:有一栋100层高的大楼,给你两个完全相同的玻璃球。假设从某一层开始,丢下玻璃球会摔碎。那么怎么利用手中的两个球,用什么最优策略知道这个临界的层是第几层?? 答:https://blog.csdn.net/coolws123/article/details/22998879 假设问题存在最优解,这个最优解的最坏情况尝试次数是x次 那么第一次时我们就得从第x层开始,因为
若第一次扔后没碎,那么问题变成在100-x层楼往下扔,要求尝试次数不得超过x-1次,由于最坏尝试次数变成了x-1,那么第二次尝试的楼层跨度变成x-1层,理由同上,同理若没碎,则第三次x-2…… 则当前楼层数为:x层->x+x-1层->x+x-1+x-2层 因此可以列出方程式:x+(x-1)+(x-2)+…+1=100 ---àx=14 左边的多项式是各次扔鸡蛋的楼层跨度之和。由于假设尝试x次,所以这个多项式共有x项,右边是总的楼层数100。
由此题引申的M层楼,N个鸡蛋问题呢?(动态规划) 最优解的最坏情况下尝试次数是 X,鸡蛋首次扔出的楼层也是 X 这个规律不再成立。 可以把M层楼 / N个鸡蛋的问题转化成一个函数 F(M,N),其中楼层数M和鸡蛋数N是函数的两个参数,而函数的值则是最优解的最大尝试次数。 https://mp.weixin.qq.com/s/ncrvbpiZauXAGnUZTh5qtA
|
烧香
题目:有两根粗细均匀的香(烧香拜佛的香),每一根烧完都花一个小时,怎么样能够得到15min,45分钟呢? 答:把一根香在中间和两头都点燃,用15分钟,接着把另一根从中间点燃或者两头点燃用30分钟,加起来就是45分钟 |
撞球
题目:假定你有8个撞球,其中有1个球比其他的球稍重,如果只能利用天平来断定哪一个球重,要找到较重的球,要称几次?(2次); 答:两次,先3对3称一下,在重的里面1对1称一下即可,如果3对3一样重,在剩下的两个中 |
小白鼠试毒
题目:实验室里有1000个一模一样的瓶子,但是其中的一瓶有毒。可以用实验室的小白鼠来测试哪一瓶是毒药。如果小白鼠喝掉毒药的话,会在一个星期的时候死去,其他瓶子里的药水没有任何副作用。请问最少用多少只小白鼠可以在一个星期以内查出哪瓶是毒药;(答案是10只) 答:把瓶子从 0 到 999 依次编号,然后全部转换为 10 位二进制数。让第一只老鼠喝掉所有二进制数右起第一位是 1 的瓶子,让第二只老鼠喝掉所有二进制数右起第二位是 1 的瓶子,等等。一星期后,如果第一只老鼠死了,就知道毒药瓶子的二进制编号中,右起第一位是 1 ;如果第二只老鼠没死,就知道毒药瓶子的二进制编号中,右起第二位是 0 ⋯⋯每只老鼠的死活都能确定出 10 位二进制数的其中一位,由此便可知道毒药瓶子的编号了。 |
水壶装水
问题:假设有一个池塘,里面有无穷多的水。现有2个空水壶,容积分别为5升和6升。问题是如何只用这2个水壶从池塘里取得3升的水; 答:6升的桶装满倒5升的桶,剩下1升,然后5升的倒掉,1升倒入5升,6升再装满倒入5升桶,剩下2升,5升桶倒掉再把2升装进5升桶,6升桶再装满倒入5升,最后6升桶剩下3升 |
12枚硬币