问题描述

12个硬币中有1个假币,假币的重量与真币不同,如何用天平最多称量3次找出假币?

问题分析

12个硬币有24种情况,天平有左斜,右斜和平三种情况,log3(n) >= 24,求得n=3,所以根据信息论的知识,用天平称量三次可以解决这个问题。
将12个银币分为3组,记为A1,A2,A3,A4,B1,B2,B3,B4,C1,C2,C3,C4。

//伪代码
if (A == B) {//A组和B组重量相等,那么假币在C组if (A1+A2+A3 == C1+C2+C3) {//此时已经知道C4是假币if (A1 > C4) {System.out.print("C4是更轻的假币");} else {System.out.print("C4是更重的假币");}} else if (A1+A2+A3 > C1+C2+C3) {//C1,C2,C3中有一个更轻的假币if (C1 == C2) {System.out.print("C3是更轻的假币");} else if (C1 > C2) {System.out.print("C2是更轻的假币");} else {System.out.print("C1是更轻的假币");}}
} else if (A > B) {//A组有一个更重的假币或者B组有一个更轻的假币。C组全部为真币if (A1+A2+A3+B1+B2 == A4+C1+C2+C3+C4) {//此时假币在B3,B4或A4之中if (B3 == B4) {System.out.print("A4是更重的假币");} else if (B3 > B4) {System.out.print("B4是更轻的假币");} else {System.out.print("B3是更轻的假币");}} else if (A1+A2+A3+B1+B2 > A4+C1+C2+C3+C4) {//此时假币在A1,A2或A3之中if (A1 == A2) {System.out.print("A3是更重的假币");} else if (A1 > A2) {System.out.print("A1是更重的假币");} else {System.out.print("A2是更重的假币");}} else {//此时假币在B1,B2或A4之中if (B1+A4 == C1+C2) {System.out.print("B2是更轻的假币");} else if (B1+A4 > C1+C2) {System.out.print("A4是更重的假币");} else {System.out.print("B1是更轻的假币");}}
} else {//与上述A>B同理,只是这里是A<B
}

思维题:12个硬币中有1个假币,假币的重量与真币不同,如何用天平最多称量3次找出假币?相关推荐

  1. n枚硬币找出假币问题(包含一枚假币)

    问题描述: 在n枚外观相同的硬币中,有一枚是假币,并且已知假币与真币的重量不同,但不知道假币与真币相比较轻还是较重.可以通过一架天平来任意比较两组硬币,设计一个高效的算法来检测这枚假币(以下提供两种方 ...

  2. Google面试题原理解析 12个乒乓球其中有1个次品,用天平称重3次找出

    1. 题目 "在12个小球里有一个次品,重量与其他11个球不同.用一个没有砝码的天平,称3次,保证找到那个次品,并且区分出次品是轻还是重呢?" 这个问题看似简单,做起来还真不容易. ...

  3. 在n个硬币中找出假币

    #include<stdio.h> #define MAXNUM 100 //硬币最大数量int Find_false_coin(int c[],int low,int high) {in ...

  4. 笔试强训第三周编程题part01(年终奖,迷宫问题;微信红包,计算字符串的距离;小易的升级之路,找出字符串中第一个只出现一次的字符,洗牌)

    年终奖 OJ链接 此题是一道动态规划的问题 读题可知:只能从上往下和从左往右移动 由此需要前[i-1] [ j ]和[i][j-1]来比较大小来确实最优解. 其中有两种特殊情况,第一行和第一列 代码如 ...

  5. 【蓝桥杯省赛真题12】Scratch排序 少儿编程scratch蓝桥杯省赛真题讲解

    目录 scratch排序 一.题目要求 1.编程实现 2.具体要求 二.案例分析

  6. 12枚硬币中取1枚假币的问题

    题目描述 12个硬币中存在一个假币,不知是比真币重还是轻.现有一个天秤,要求称3次找出假币,并知其比真币重还是轻. 题解 首先将12枚硬币分3组编号分别为Ⅰ(1.2.3.4).Ⅱ(5.6.7.8).Ⅲ ...

  7. 面试智力题 - 找出12个球中质量不同的小球

    面试智力题 - 找出12个球中质量不同的小球 面试被问到了这么一道智力题. 现在有12个外观完全相同的12个小球,已知其中一个小球质量和其他的11个不同.用一个天平称3次,找出这个质量不同的小球,并说 ...

  8. 7个相同小球4个不同盒子_如何用天平称三次找出12个外观相同小球中仅有的一个次品?次品质量与正品不同。...

    刷知乎看到这个问题: 12个相同的小球其中有一个质量不同,一个天平,称三次找出这个小球,请问怎么称?​www.zhihu.com 为了给出通俗易理解的答案,写了这个文章,祝题主有情人终成眷属! 先祭出 ...

  9. 假币问题:有n枚硬币,其中有一枚是假币,已知假币的重量较轻。现只有一个天平,要求用尽量少的比较次数找出这枚假币。

    2017年软件设计师上半场下午题目 [说明] 假币问题:有n枚硬币,其中有一枚是假币,已知假币的重量较轻.现只有一个天平,要求用尽量少的比较次数找出这枚假币. [分析问题] 将n枚硬币分成相等的两部分 ...

最新文章

  1. 一个几何不等式的最佳常数
  2. “23岁本科生发14篇SCI”,文章被学校官网悄悄删了,你怎么看?
  3. Manning大神牵头,斯坦福开源Python版NLP库Stanza:涵盖66种语言
  4. ajax向后台请求数据,后台接收到数据并进行了处理,但前台就是调用error方法...
  5. Java多线程生产者消费者调度实现
  6. 国家发钱了!研究生补贴一览表!
  7. Linux的open函数的调用过程,Linux 中open系统调用实现原理
  8. java导入导出有版本兼容问题_java导入excel时遇到的版本问题
  9. (26)Verilog HDL循环语句:repeat
  10. python json删除字段_如何使用python删除json对象?
  11. 从中关村的小小柜台,但目前市值千亿元的公司
  12. 深度学习训练和推理有何不同?
  13. AVL Cruise 2020安装教程
  14. 阿里巴巴牵手福特 共同打造智联网汽车
  15. 【深度】美俄机器人集群军事作战应用研究现状!三大关键技术体系分析
  16. 2段代码实现在所有浏览器下显示特殊字体(附字体转换工具)
  17. Python实现和弦查询器(钢琴)
  18. 视觉slam十四讲 pdf_《视觉SLAM十四讲》学习笔记+关键知识点汇总(一)
  19. 举个栗子!Tableau技巧(38):快速插入个性化背景
  20. 已知一棵完全二叉树的节点数n,求叶节点数

热门文章

  1. 记一次逆向破解微信小程序参数签名
  2. MFC实现浮点/进制转换计算器
  3. LOAM_Livox小结
  4. Mn掺杂CdS量子点|锰掺杂硫化镉量子点|MnS/ZnS/CdS量子点的制备方法图示
  5. C语言程序设计(数据结构)——计算一元二次方程
  6. python get方法列表参数_python中requests库get方法带参数请求
  7. STM32 Not a genuine ST Device! Abort connection 错误解决方案
  8. 深度linux安装宝塔,Linux 安装宝塔
  9. 【网络教程】群晖安装甜糖最新教程,手把手教您在Docker中安装官方甜糖
  10. 国王将金币作为工资,发放给忠诚的骑士。 问题 G: 金币