题目:有十个外表一模一样的小球,其中九个小球的的质量相同,另外一个X不同。现在有一架天枰,只能称量三次,该怎么称量能确定这个质量不一样的小球?
说明:面试的时候,碰到了这么个智力题,总共十道题,半个小时,这一个题就卡了将近十分钟,最后还是把这个题放弃了。在面试回来后,想了那么久,终于想出来了一种方案,不过个人感觉这样挺复杂的,想不出其他方案。
方案:拿出一个小球,将剩余的九个小球分为三组A、B、C。取A组和B组分别放在天枰两端进行称
量(第一次称量)(两种情况):
1、若平衡:
则说明A组和B组中没有X。可以肯定X在剩下C组小球和刚开始拿出的那个小球中,然后在这四个小球中取出两个进
行称量(第二次称量)(又分为两种情况):
a、若平衡:
则说明小球在剩余的两个小球M、N中,从剩余小球中拿出一个M,和另外八个其中任何一个进行比较
(第三次称量) (又分为两种情况)若平衡,则说明N是X;若不平衡,则说明M是X。
b、若不平衡:
则说明被比较称量的小球M、N其中一个是X,拿出M,和另外八个其中任何一个进行比较
(第三次称量) (又分为两种情况)若平衡,则说明N是X;若不平衡,则说明M是X。
2、若不平衡:
则说明X在A组或B组中。记下天枰倾斜的方向,从A组中拿出一个A1,从B组中拿出一个B1,此时A组剩余A2和A3,
B组剩余B2和B3,将A2和B2放在上次比较A组所放的盘中,将A3和B3放入上次比较B组所放的盘中,进行再
次比较(第二次称量)(分为三种情况):
a、若平衡:
则说明X在A1和B1中,从剩余小球中拿出一个A1,和另外八个其中任何一个进行比较
(第三次称量) (又分为两种情况)若平衡,则说明A1是X;若不平衡,则说明B1是X。
b、天枰的倾斜方向和刚才记录下的一样:
则说明X在A2和B3中, 从剩余小球中拿出一个A2,和另外八个其中任何一个进行比较
(第三次称量) (又分为两种情况)若平衡,则说明A2是X;若不平衡,则说明B3是X。
c、天枰的倾斜方向和刚才记录下的相反:
则说明X在A3和B2中, 从剩余小球中拿出一个A3,和另外八个其中任何一个进行比较
(第三次称量) (又分为两种情况)若平衡,则说明A3是X;若不平衡,则说明B2是X。
分享到:
相关推荐
前端大厂最新面试题-getAllHTMLTags.docx 本文档主要讨论了前端面试中的一道经典题目:获取页面所有的 HTML 标签。该题目要求获取当前页面中所有 HTML 标签的名字,以数组形式输出,重复的标签不重复输出。 获取...
在前端工程师面试中,分治算法常常被用来测试候选人的解决问题和复杂度分析能力。分治算法是一种重要的算法思想,它的基本策略是将一个大问题分解成若干个规模较小、相互独立、与原问题形式相同的子问题,再将子问题...
第374题“猜数字大小”(Guess Number Higher or Lower)是一个经典的猜数字游戏,旨在测试你的二分查找和逻辑推理技能。以下是这个题目的详细解析以及相关知识点。 ### 题目描述: 游戏规则如下: 1. 有一个整数 `...
1. 该题是一道编码与解码的问题。从给定的规则来看,每个字母向后移动了两位。所以FAITH -> F(2)=H, A(2)=C, I(2)=K, T(2)=V, H(2)=J,因此FAITH解码后为CJKVJ,答案是无对应选项。 2. 这是一道基础数学运算题。7/2...
在文档中提到了一道关于数据结构变换的经典面试题——将二元查找树转换成排序的双向链表。这道题目不仅考察了对二元查找树的理解,还涉及到了链表的操作。 **题目描述:** 输入一棵二元查找树,目标是将这棵二元...
通过"Daily-Interview-Question-master"这个压缩包文件,你可以每天挑战一个面试题,逐步提升你的JavaScript技能,为进入大厂做好充分准备。同时,这也可以作为日常学习和自我检测的工具,帮助你在实践中巩固理论...
根据给定文件的信息,我们可以总结出以下数据结构与算法...以上是对文档中提到的几道数据结构和算法面试题的详细解析,每一道题目都给出了具体的代码实现和分析思路,这对于理解这些经典问题及其解决方法具有重要意义。
这里提到的"公司面试算法经典50题(部分有答案)"涵盖了各大公司如微软、IBM等的面试题,旨在帮助求职者提升算法解决能力。其中一道具体的题目是将二元查找树转换为排序的双向链表。 首先,我们需要了解二元查找树...
下面我们将逐一探讨这些经典面试题所涉及的知识点。 1. **Task Manager.pdf**:这可能涉及到操作系统中的任务管理,包括进程管理和资源调度。理解进程的状态转换、调度策略(如FCFS、SJF、优先级调度、多级反馈队列...
本资料集是针对微软等公司的数据结构和算法面试准备的一套题库,包含了从第1题到第80题的经典面试题目。这些题目覆盖了数据结构的基本概念、操作以及算法的设计与分析等内容,对于想要进入知名IT企业工作的求职者来...
【程序员面试题精选100题】是一本针对程序员面试准备的资料,涵盖了众多经典且实用的面试题目,旨在帮助应届毕业生以及有经验的程序员更好地应对面试挑战,从而找到满意的工作。面试作为招聘过程中的关键环节,对于...
Golang 常见面试题目解析 交替打印数字和字母 判断字符串中字符是否全都不同 翻转字符串 判断两个给定的字符串排序后是否一致 字符串替换问题 机器人坐标计算 ...MySQL数据库经典面试题解析 MySQL InnoDB MVC
这是一道经典的Java面试题。解决这个问题需要了解Java的内存管理机制,包括FULL GC的触发条件、Perm Gen的设置、System.gc()方法的调用等。 Java集合框架 3. Java集合框架是Java语言中的一种重要概念,它提供了...
本题是针对程序员面试场景设计的一道经典题目,主要考察应聘者对数据结构和算法的理解能力。 #### 问题描述 给定一棵二叉查找树(Binary Search Tree, BST),要求不创建新的节点,仅通过调整现有节点之间的指针...
1. **二元查找树转双向链表** - 这道题目的关键是利用二元查找树的特性,即左子树的值小于当前节点,右子树的值大于当前节点。通过中序遍历,我们可以保持原有的排序顺序,将节点的左右子节点指针调整为双向链表的...
MySQL数据库经典面试题解析 MySQL InnoDB MVCC 机制的原理及实现 为什么MySQL使用B+树做索引? 面试必备算法 字符串之实现 Sunday 匹配 字符串泄漏之反转字符串(301) 字符串中的第一个唯一字符 字符串之验证回文串