前言

最近在刷腾讯的笔试题,遇到了这道智力题。春招实习生的时候,面试依图,也遇到了这个问题。今天就在这总结下解法。

问题描述

12个球,其中只有一个质量不同的球。要求使用一个天平,经过三次称量,找出这个球。并说明这个球相比于其他球,是重还是轻。

解法步骤

  1. 将这12个球编号为1~12
  2. 14号球分为A1组,58号球分为A2组,9~12号球分为A3组
  3. 第一次称量,取A1组和A2组分别放在天平两端。存在两种结果:
    1. 天平平衡。这说明要找的球位于A3组中
    2. 天平不平衡。这说明要找的球位于A1或者A2组中
  4. 考虑天平平衡的情况。此时要找的球是912号球中某一个。任取三个正常的球,假设为1,2,3,放到天平一端;从912号球中任取三个,假设为9,10,11,放到天平另一端。进行第二次称量。此时存在三种情况:
    1. 天平平衡。这说明12就是要找的那个球。将12与任一一个球进行第三次称量,重就是重,轻就是轻
    2. 1,2,3组合重于9,10,11组合。这说明要找的球是9,10,11中的一个,且这个球是轻的。从三个球任取两个球进行第三次称量,假定为9,10。
      1. 天平平衡。则11是要找的球,且其是轻的
      2. 天平不平衡。则轻的那个球即为要找的球
    3. 1,2,3组合轻于9,10,11组合。这说明要找的球是9,10,11中的一个,且这个球是重的。从三个球中任取两个球进行第三次称量,假定为9,10。
      1. 天平平衡。则11是要找的球,且其是重的。
      2. 天平不平衡。则重的那个球即为要找的球。
  5. 考虑天平不平衡的情况。假设A1组更重。那么A3组中球都是正常的,从中任取三个球,假设为9,10,11。从A1组中任选一个球,假设为4。从A2组中任取一个球,假设为5。将A1组的1,2,3和A2组的5一起放到天平的一端,把4和9,10,11放到天平另一端。进行第二次称量。此时存在三种情况:
    1. 天平平衡。则说明要找的球是6,7,8中的一个,且其是轻的。任选两个球进行第三次称量。假设为6,7。

      1. 天平平衡。则8是要找的球,且其是轻的。
      2. 天平不平衡。则轻的那个球即为要找的球。
    2. 1,2,3,5组合重于4,9,10,11组合。则要找的球位于1,2,3中,且其是重的。任选两个球进行第三次称量。假设为1,2。
      1. 天平平衡。则3是要找的球,且其是重的。
      2. 天平不平衡。则重的那个球即为要找的球。
    3. 1,2,3,5组合轻于4,9,10,11组合。则要找的球是4或5。且若是4,则4是重的,若是5,则5是轻的。任取一个正常重量的球,假设为1,将其与4或5称量下,就可以确定了。

后记

大功告成,世界和平。

从12个球中找出唯一一个质量不同的球,并说明轻重相关推荐

  1. 称球问题|信息量|拓展|C++代码实现|12大小一样的球,找出其中质量不一样的球解析和代码实现

    直接求解法 条件:天平.12个一样的球,其中一个不一样,用天平找出那个不一样的球并确定轻还是重,最少的次数是:3 将12个球分为三组 A:1 2 3 4 B:5 6 7 8 C:9 10 11 12 ...

  2. 称球问题-找出球中的坏球

    称球问题-找出球中的坏球 原作者参考:http://blog.csdn.net/pongba/article/details/2544933 问题 问题模型描述:n个小球,其中有一个是坏球.有一架天平 ...

  3. bat从数组中找出相同数字并删除_全网把Map中的hash()分析的最透彻的文章,别无二家...

    原文地址:https://mp.weixin.qq.com/s/qCHkzs4JPOipB-ZzqrfbeQ 作者: Hollis 你知道HashMap中hash方法的具体实现吗? 你知道HashTa ...

  4. 【面试现场】如何在10亿数中找出前1000大的数

    小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT互联网公司. 之前小史在BAT三家的面试中已经挂了两家,今天小史去了BAT中的最后一家面试了. 简单的 ...

  5. Redis进阶-如何从海量的 key 中找出特定的key列表 Scan详解

    文章目录 需求 scan scan基本使用 批量写入一批模拟数据 字典的结构 scan 遍历顺序 (高位进位法) 渐进式 rehash 更多的 scan 指令 大 key 扫描 --bigkeys 使 ...

  6. 海量数据处理 - 10亿个数中找出最大的10000个数(top K)

    海量数据处理 - 10亿个数中找出最大的10000个数(top K问题) 版权声明:本文为博主原创文章,未经博主允许不得转载 前两天面试3面学长问我的这个问题(想说TEG的3个面试学长都是好和蔼,希望 ...

  7. linux误修改文件名恢复,如何在 Linux 中找出最近或今天被修改的文件-linux修改文件名...

    Linux 用户在命令行上遇到的常见问题之一是定位具有特定名称的文件,如果你知道确定的文件名则可能会容易得假设你忘记了白天早些时候创建的文件的名称(在你包含了数百个文件的 home 文件夹中),但现在 ...

  8. 二叉树路径和最大python_python3实现在二叉树中找出和为某一值的所有路径(推荐)...

    请写一个程序创建一棵二叉树,并按照一定规则,输出二叉树根节点到叶子节点的路径. 规则如下: 1.从最顶端的根结点,到最下面的叶子节点,计算路径通过的所有节点的和,如果与设置的某一值的相同,那么输出这条 ...

  9. 数据结构与算法--有序数组中找出和为s的两个数字

    有序数组中找和为s的两个数字 题目:输入一个递增排序的数组array, 和一个数字s, 在数组中找出两个数,使得这两个数的和是s,如果有多对,输出一对即可. 最简单方案 双循环,每次获取一个数据,和数 ...

最新文章

  1. java 自定义注解 解析_java自定义注解
  2. 05移动端布局基础之flex弹性布局项目实战(携程移动端首页)
  3. html设置正则表达式,html 正则表达式
  4. 【逻辑与计算理论】组合子逻辑与 Y 组合子
  5. [原创]关于设置linux中vim 显示行号
  6. 用计算机演银河系,专家首次用计算机模拟类银河星系 分辨率极高
  7. StateListDrawable 动态更换背景
  8. Leetcode每日一题:463.island-perimeter(岛屿的周长)
  9. 没有varselect这个函数_JavaScript学习笔记(四)-- 函数基础
  10. 要认识流程管理的局限性
  11. python运用ico图标_如何优雅地处理Django中的favicon.ico图标详解
  12. yafu 下载_YAFUD
  13. Unity精品Demo收集
  14. MYSQL选修课的心得体会_选修课心得体会
  15. 高性能台式计算机一体机,一体机电脑与台式机电脑,究竟选哪个好?
  16. hdu4322 candy 费用流
  17. Proteus 8 Professional跑Keil uVision4的文件
  18. additional-methods.js 用法
  19. H---RGB色彩图像分析
  20. 模拟CMOS集成电路设计入门学习(2)

热门文章

  1. 香港公司开户 香港个人开户 香港公司注册
  2. VxWorks网络驱动配置及分析 来源:http://www.cublog.cn/
  3. 新房交接需要注意的事项
  4. 身上只剩一美分该怎么做呢 ?
  5. 使用virtualBox打造多节点Linux
  6. [转载]论红楼“慧纹”即“回文锦”的隐写
  7. 系统资源监控nmon
  8. flutter 绘制流水(水波上升)动态效果
  9. backtrack工具列表及介绍
  10. LegoNet: A Fast and Exact Unlearning Architecture