12硬币中有一个不知道轻重的假币,用天平将它找出来

2024-03-10 22:32

本文主要是介绍12硬币中有一个不知道轻重的假币,用天平将它找出来,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

    问题1:假设有8个硬币,里面有一个硬币是假币,并且知道它是重了还是轻了(假设是轻了),现在给你一个天平,要求用最小次数将这个硬币找出来.
这时候可以用一种类似二分法的算法来找出这个假币.将左边4个和右边4个比较,因为知道硬币是轻了,所以很快就能确定那堆硬币里面有假币,这时候问题的规模由原来的8变成了4....然后对4个硬币也采用同样的办法...最终3次找出那个假硬币

问题2:问题1的升级版,这时候不再知道那个假币是重了还是轻了,并且这时候还是12个硬币规模

    对12个硬币进行分

   然后第一次称量:A堆和B堆

                                    如果A == B  那么 无疑假硬币无疑在C堆中   然后称量    9  +10   和 7  + 8 .如果相等能够确定假币在11 或者12 中,如果不相等可以确定在9或者10中,接下来一次机会怎么确定假币的方法 你们可以想到吧。。。好的,这种情况可以解决掉了

                                  然后到了假设A!=B的情况 ,毫无疑问,任何称量都可以看到哪一个堆是重了还是轻了,请记住这种情况,这是关键的关键(标记位***)。在A!=B情况下我们采取以下称量计划    (1) 第一次 1+2+6   和5+3+9  如果相等,那么说明假币无疑是在4  7 8 中,然后下一步我们称量7和8,如果7和8相等,那么说明假币是4,如果7和8不相等,你们还记得那个最关键的关键的(***)没有??7和8不相等,那么说明A中全部都是真的,并且我们曾经称量过A 和B得知过哪个重了,也就是意味着我们可以从曾经进行过的推算中猜测到哪个假币是重了还是轻了,那么如今你7和8不相等并且你推出了假币是重了还是轻了,是不是就知道假币是哪个了?

                                         (2)如果第一次1+2+6 和5+3 +9  不相等,这时候我们留意到参与称量的硬币9是真币,记住第二个关键的关键,我们在这次测量中交换了一个A堆的3和B堆的6硬币,(情况A)如果说因为这次交换导致了天平的平衡方向改变了,本来由大的变小的,小的变大了之类的,那么我们毫无疑问能够确定假币在3或者6之中,接下来最后一次如何在两个硬币中确定是哪个假币你们能想到吧?还有一个(情况B)如果说因为这次交换导致了天平的平衡方向改变了,本来由大的依然是大的,小的依然是小的之类的,这时候我们能够确定到假币是在1 2 5 中,你们注意到之前是否也分析过类似的?你们注意一下上面提到的关键的关进,也就是标记(***),就会知道如何类似的应用这个条件,去判断假币在哪个中了,,,,其实就是类似(1)的分析


问题3:8个硬币,不知道轻了还是重了,三次称量找出来。转换成问题2一样的问题


你们知道了吧,其实问题3就是问题2的一个子集,据说这个问题3是一个公司的面试题。目测估计是准备压力面,这是最简单的情况....




        

这篇关于12硬币中有一个不知道轻重的假币,用天平将它找出来的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/795729

相关文章

XTU 1233 n个硬币连续m个正面个数(dp)

题面: Coins Problem Description: Duoxida buys a bottle of MaiDong from a vending machine and the machine give her n coins back. She places them in a line randomly showing head face or tail face o

安装SQL2005后SQL Server Management Studio 没有出来的解决方案

一种情况,在安装 sqlServer2005 时 居然出现两个警告: 1 Com+ 目录要求 2 Edition change check 郁闷!网上说出现两个警告,是肯定装不成功的!我抱着侥幸的态度试了下,成功了。 安装成功后,正准备 “ 仅工具、联机丛书和示例(T)” 但是安装不了,他提示我“工作站组件”安装过了对现有组件无法更新或升级。 解决办法: 1 打开“控

问:Super与this在Java中有什么区别?

this: this 关键字用于引用当前对象。它通常用于区分成员变量和方法参数或局部变量。在实例方法中,this 指向调用该方法的对象。在构造函数中,this 指向正在被初始化的对象。 super: super 关键字用于引用父类(超类)的构造函数、方法或变量。在子类的构造函数中,super() 用于调用父类的构造函数。在子类的方法中,super.methodName() 用于调用父类的方法。

[情商-13]:语言的艺术:何为真实和真相,所谓真相,就是别人想让你知道的真相!洞察谎言与真相!

目录 前言: 一、说话的真实程度分级 二、说谎动机分级:善意谎言、中性谎言、恶意谎言 三、小心:所谓真相:只说对自己有利的真相 四、小心:所谓真相:就是别人想让你知道的真相 五、小心:所谓善解人意:就是别人只说你想要听到的话 前言: 何为真实和真相,所谓真相,就是别人想让你知道的真相!洞察谎言与真相! 人与人交流话语中,处处充满了不真实,完全真实的只是其中一小部分,这

看病要排队这个是地球人都知道的常识

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍+ 收藏⭐ + 留言​📝唯有付出,才有丰富的果实收获! 看病要排队这个是地球人都知道的常识。 不过经过细心的0068的观察,他发现了医院里排队还是有讲究的。0068所去的医院有三个医生(汗,这么少)同时看病。而看病的人病情有轻重,所以不能根据简单的先来

【无线通信发展史⑧】测量地球质量?重力加速度g的测量?如何推导单摆周期公式?地球半径R是怎么测量出来的?

前言:用这几个问答形式来解读下我这个系列的来龙去脉。如果大家觉得本篇文章不水的话希望帮忙点赞收藏加关注,你们的鼓舞是我继续更新的动力。 我为什么会写这个系列呢? 首先肯定是因为我本身就是一名从业通信者,想着更加了解自己专业的知识,所以更想着从头开始了解通信的来源以及在每一个时代的发展进程。 为什么会从头开始写通信? 我最早是学习了中华上下五千年,应该说朝代史,这个算个人兴趣,从夏

纳米材料咋设计?蛋白质模块咋用?看这里就知道啦!

大家好,今天我们来了解一项关于蛋白质纳米材料设计的研究——《Blueprinting extendable nanomaterials with standardized protein blocks》发表于《Nature》。蛋白质结构复杂,其组装体的设计颇具挑战。但近期的研究取得了新突破,通过设计标准化的蛋白质模块,如线性、曲线和转角模块等,实现了纳米材料的可扩展性和规律性。这

只有对比,才知道伊利股份半年报的高成色

投资圈有句名言:“当潮水退去的时候,才知道谁在裸泳”。大环境顺风顺水,大家看着都挺好,只有环境变化,才更容易分辨出来,谁才是真有实力。当下,在消费环境弱复苏的大背景下,高成色的半年报业绩让伊利股份的实力一览无余。 8月29日,伊利股份发布中期业绩。上半年,面对严峻复杂的市场环境,伊利直面挑战、主动调整,实现营业总收入599.15亿元,归母净利润75.31亿元,均稳居行业第一。

从新手到大师:Java并发编程你必须知道的那些事!

文章目录 1 进程和线程的区别?2 如何创建一个线程实例并且运行它?3 Runnable 和 Callable 接口有什么区别?它们是如何使用的?4 方法定义中 synchronized 关键字的含义是什么?静态方法?在一个块之前 ? 1 进程和线程的区别? 进程是独立的执行单元,拥有自己的资源和内存,而线程是在进程内的执行单元,共享进程的资源。线程可以高效地执行任务,但需

Mybatis like 模糊查询,有数据,但是就是查询不出来

今天修改项目遇到的问题,mybatis模糊查询,有数据,就是查不出来。也不报错。 问题虽然最后搞定了,来总结下。 Mybatis配置如下:<select id="getAll" resultMap="OaEmplyeeInfoResultMap"parameterType="com.deppon.oa.module.oaEmplyeeInfo.domain.OaEmplyeeInfo"