有100个药瓶里面放了100
粒药,现在知道里面有一瓶是坏的,它的所有药片都比正常的药要重。已知正常药瓶的重量。问如何只称重一次就能找出那个坏的药瓶?
参考别人的理解,给出个人的解法。
解法:假设每颗药片1mg,对药瓶编号1,2,。。。,100,第i瓶取i颗药片,整体称重,正常状况下 Wnormal = (1+2+ ... + 100) = 5050 mg;实际称重为Wabnormal > 5050 mg , 则差值 Wdiff = (Wabnormal - Wnormal) mg,该差值大小即为已坏的药瓶的编号,比如,差值为34mg,则第34号瓶是坏的,因为 34mg = 34 * 1mg, 当且仅当是第34号瓶的时候才成立,其他药瓶取出的药片数目不是34。
可能使用的理论:使用集合的划分思想,w = {W1,W2,...,W100}, 并且要求集合元素之间是互斥的,即1<=i
另一道
题:
有一个圆盘,分成左右两半,分别是白色和黑色,然后有一堆传感器,这些传感器中有对各种颜色的感应,如黑色传感器就会对黑色产生反应。现在这
个圆盘是传动的,问如何设计传感器,使得可以判断出圆盘的转动方向(顺时针,逆时针)。(我的理解是如果设计一个传感器序列,使得通过这个序列能判断出圆
盘的转动方向。。。呵呵,有说等于没说),大家讨论一下你们的理解吧!
问了好几道算法题,这两个理解都没理解到。其实面试的老师不一样问的问题就
不一样,我问的全是算法,悲剧得很。我的同学就问项目经验的东西,及linux,网络编程。基本上就这些东西。
第二题在网上找到了原题:假设一张圆盘像唱机上的唱盘那样转动。
这张盘一半是黑色,一半是白色。假设你有数量不限的一些颜色传感器。要想确定圆盘转动的方向,你需要在它周围摆多少个颜色传感器?它们应该被摆放在什么位
置?大概想了一下,类似于一个序列不是另一个序列的前缀。
阅读(1337) | 评论(0) | 转发(0) |