Google面试题原理解析 12个乒乓球其中有1个次品,用天平称重3次找出
1. 题目
“在12个小球里有一个次品,重量与其他11个球不同。用一个没有砝码的天平,称3次,保证找到那个次品,并且区分出次品是轻还是重呢?”
这个问题看似简单,做起来还真不容易。
误区:也许有人说:我可以用二分法,先把球均分成两堆,上天平比较,找到重的一堆,次品就在这里。再把重的一堆均分成两堆,上天平比较…这样,每次就能把球去掉一半,就能最快找到次品啦!这样子会很慢。
2. 原理解析
分析一下原理: 12个球,每个球有重了,轻了2中状态,也就是一共有12 x 2 = 24
种状态。称一次实际上可以区分3中状态,平衡,重,轻。
比如把球分成3堆A,B,C。称的结果解析:
- 平衡。A == B, A和B中都是好球, 也就是C中有次品;次品可以是重,也可以是轻。
- 左边倾斜。A > B, C中都是好球, 也就是A 或者 B中有次品,次品可以是重,也可以是轻。
- 右边倾斜。A < B, C中都是好球, 也就是A 或者 B中有次品,次品可以是重,也可以是轻。
假如每次称重都是区分3中状态,3次称重可以区分27种状态 3^3 = 27
。 因为有24种状态,所以理论上可以称3次找出次品。如果是14个球,状态就有28种,称3次就无论如何都找不出来了。
定义称几次为K,球的个数为N,理论中可以有解的公式如下, 3的K次方 大于等于 2N
3 ^ K >= 2N
3. 解题步骤
第一次称重可能会有三种不同的结果,我们根据不同的结果再进行后两次称重。
首先,考虑第一种平衡的结果,下一步我们从A组中取出三个正品球与C组中9、10、11号球称重。
考虑第二种左重的结果,下一步我们从C组中取出三个正品球替换A组中2、3、4号球,然后将2、3、4号球替换6、7、8号球。
同理,考虑第三种右重的结果,下一步我们从C组中取出三个正品球替换A组中2、3、4号球,然后将2、3、4号球替换6、7、8号球。
参考
https://zhuanlan.zhihu.com/p/386160442
《计算之魂》-- 吴军
Google面试题原理解析 12个乒乓球其中有1个次品,用天平称重3次找出相关推荐
- 12个乒乓球,其中有11个球每个球重量一模一样,另外1个球重量和那11个球不一样.用天平称三次,把单独的球(和那11个重量不一样的球)找出来
12个乒乓球,其中有11个球每个球重量一模一样,另外1个球重量和那11个球不一样.用天平称三次,把单独的球(和那11个重量不一样的球)找出来 代码展示 import random a = random ...
- 思维题:12个硬币中有1个假币,假币的重量与真币不同,如何用天平最多称量3次找出假币?
问题描述 12个硬币中有1个假币,假币的重量与真币不同,如何用天平最多称量3次找出假币? 问题分析 12个硬币有24种情况,天平有左斜,右斜和平三种情况,log3(n) >= 24,求得n=3, ...
- 12个球,其中一个和其他的重量不一样,有一个天平,最多几次找出这个球
12个球,其中一个和其他的重量不一样,有一个天平,最多几次找出这个球 将球编号,分成3组,1234 5678 9101112 第一次将1234,5678放在天平的两边 如果平衡,则坏球在910 ...
- 12个球,其中有1个坏球和其他11个重量不一样,给你一个天平,称3次,找出不一样的那个
很常见的一道逻辑题,只使用已知条件,不借用其他外力. 设12个球分别是:A1,A2,A3,A4,B1,B2,B3,B4,C1,C2,C3,C4 第一次称:天平两侧分别是,左侧:A1,A2,A3,A4, ...
- 12个乒乓球称重问题
问题: 有12个乒乓球,其中有一个次品,不知道轻重,用一台无砝码天平称三次,找出次品并告知轻重,怎么称? 解答: 先分3组,每组4个,随便拿两组来称第一次: 情况1:天平平衡, 则在剩下的4个球里,从 ...
- 面试智力题 - 找出12个球中质量不同的小球
面试智力题 - 找出12个球中质量不同的小球 面试被问到了这么一道智力题. 现在有12个外观完全相同的12个小球,已知其中一个小球质量和其他的11个不同.用一个天平称3次,找出这个质量不同的小球,并说 ...
- Google 面试题和详解
Google的面试题在刁钻古怪方面相当出名,甚至已经有些被神化的味道.这个话题已经探讨过很多次,而科技博客 BusinessInsider这两天先是贴出15道Google面试题并一一给出了答案,其中不 ...
- 2018年上半年网络工程师综合试题视频解析-乔俊峰-专题视频课程
2018年上半年网络工程师综合试题视频解析-1209人已学习 课程介绍 做历年试题的目的究竟是为了对答案还是预测未来考试?通过乔俊锋老师的引领,在2018年5月的试题中,有60多到题目 ...
- 前苏联奥数题之12个乒乓球问题解答
/*问题:用一台没有砝码的天平再称三次的情况下找出12个乒乓球中的一个次品 add by liuyong at 2021 04 25 10:33 */ var pingpang = [1, 2, 3, ...
最新文章
- 更换checkbox的原有样式
- android实现日志列表,【Android开发】listview+popupwindow实践:日志列表
- linux查进程内存问题,关于linux下内存问题排查的工具
- 【转】android实现退出整个工程
- python插入排序_python简单的实现插入排序和二分插入排序
- Gambit学习2-曲面挖洞
- Hadoop集群配置(二)免密登录和集群配置
- 随机森林python反欺诈_基于三明治结构深度学习框架的金融反欺诈模型研究与应用...
- 微信小程序超级占内存_微信小程序彻底拯救16GB手机 小程序与APP占用内存对比...
- 档案管理系统项目总结
- 嵌入式开发日记(3)——利用Python接收并处理JY61传感器数据
- RANGE MINIUM/MAXIUM QUERY问题
- volatility用法
- iOS 图片模糊效果(高斯模糊)
- 干货 | 京东云域名注册及备案最佳实践
- 2019年十大让人欲罢不能的消费潮流 | 财见年终观察
- 程序员必备的5个工作技能
- 【无标题】26-时尚精品服饰网店响应式网页模板
- 001 《两、三位数除以一位数,笔算》三年级下
- 生物信息学 陈铭_生物信息学Bioinformatics-山东大学课程中心.PDF