`
zhangyuanjava
  • 浏览: 129485 次
  • 性别: Icon_minigender_1
  • 来自: 河北
社区版块
存档分类
最新评论

一道非常经典的面试题----转

阅读更多
题目:有十个外表一模一样的小球,其中九个小球的的质量相同,另外一个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

    前端大厂最新面试题-getAllHTMLTags.docx 本文档主要讨论了前端面试中的一道经典题目:获取页面所有的 HTML 标签。该题目要求获取当前页面中所有 HTML 标签的名字,以数组形式输出,重复的标签不重复输出。 获取...

    前端大厂最新面试题-divide-and-conquer.docx

    在前端工程师面试中,分治算法常常被用来测试候选人的解决问题和复杂度分析能力。分治算法是一种重要的算法思想,它的基本策略是将一个大问题分解成若干个规模较小、相互独立、与原问题形式相同的子问题,再将子问题...

    java面试题-leetcode题解之第374题猜数字大小.zip

    第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技能,为进入大厂做好充分准备。同时,这也可以作为日常学习和自我检测的工具,帮助你在实践中巩固理论...

    22道数据结构算法面试题.doc

    根据给定文件的信息,我们可以总结出以下数据结构与算法...以上是对文档中提到的几道数据结构和算法面试题的详细解析,每一道题目都给出了具体的代码实现和分析思路,这对于理解这些经典问题及其解决方法具有重要意义。

    公司面试算法经典50题(部分有答案)

    这里提到的"公司面试算法经典50题(部分有答案)"涵盖了各大公司如微软、IBM等的面试题,旨在帮助求职者提升算法解决能力。其中一道具体的题目是将二元查找树转换为排序的双向链表。 首先,我们需要了解二元查找树...

    微软亚洲研究院经典面试题

    下面我们将逐一探讨这些经典面试题所涉及的知识点。 1. **Task Manager.pdf**:这可能涉及到操作系统中的任务管理,包括进程管理和资源调度。理解进程的状态转换、调度策略(如FCFS、SJF、优先级调度、多级反馈队列...

    程序员面试题精选100题

    【程序员面试题精选100题】是一本针对程序员面试准备的资料,涵盖了众多经典且实用的面试题目,旨在帮助应届毕业生以及有经验的程序员更好地应对面试挑战,从而找到满意的工作。面试作为招聘过程中的关键环节,对于...

    Golang 面试题汇编

    Golang 常见面试题目解析 交替打印数字和字母 判断字符串中字符是否全都不同 翻转字符串 判断两个给定的字符串排序后是否一致 字符串替换问题 机器人坐标计算 ...MySQL数据库经典面试题解析 MySQL InnoDB MVC

    Java高级面试题汇总及答案(2022年Java面试题及答案大全)

    这是一道经典的Java面试题。解决这个问题需要了解Java的内存管理机制,包括FULL GC的触发条件、Perm Gen的设置、System.gc()方法的调用等。 Java集合框架 3. Java集合框架是Java语言中的一种重要概念,它提供了...

    程序员面试100题

    本题是针对程序员面试场景设计的一道经典题目,主要考察应聘者对数据结构和算法的理解能力。 #### 问题描述 给定一棵二叉查找树(Binary Search Tree, BST),要求不创建新的节点,仅通过调整现有节点之间的指针...

    企业数据结构与算法面试题

    1. **二元查找树转双向链表** - 这道题目的关键是利用二元查找树的特性,即左子树的值小于当前节点,右子树的值大于当前节点。通过中序遍历,我们可以保持原有的排序顺序,将节点的左右子节点指针调整为双向链表的...

    interview-go:golang面试题集合

    MySQL数据库经典面试题解析 MySQL InnoDB MVCC 机制的原理及实现 为什么MySQL使用B+树做索引? 面试必备算法 字符串之实现 Sunday 匹配 字符串泄漏之反转字符串(301) 字符串中的第一个唯一字符 字符串之验证回文串

Global site tag (gtag.js) - Google Analytics