在120枚外观相同的硬币中,有一枚是假币,并且已知假币与真币的重量不同,但不知道假币与真币相比较轻还是较重。可以通过一架天平来任意比较两组硬币,最坏情况下,能不能只比较5次就检测出这枚假币?

本文主要是介绍在120枚外观相同的硬币中,有一枚是假币,并且已知假币与真币的重量不同,但不知道假币与真币相比较轻还是较重。可以通过一架天平来任意比较两组硬币,最坏情况下,能不能只比较5次就检测出这枚假币?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这道题目我想先通过另外一道题目引入我的方法:

13枚外观相同的硬币中,有一枚是假币,并且已知假币与真币的重量不同,但不知道假币与真币相比较轻还是较重。可以通过一架天平来任意比较两组硬币,最坏情况下,能不能只比较3次就检测出这枚假币?

将13枚硬币分为三组

ABCD  EFGH  IJKLM

这里引入一个概念,每次天平倾斜方向称之为X方向、Y方向、和平衡

X方向不一定就是向左倾斜,只不过和Y方向是相对的。我们可以定义任意一种倾斜方向为X方向

(注:当文中所说M和N进行比较时,默认前一个放X位,后一个放在Y位,即M在X位,N在Y位)

将ABCD和EFGH进行比较:

得到三种情况:L位倾斜、R位倾斜和平衡

假设平衡,则比较IA和JK,如果还是平衡则比较L和A可以得到是L还是M的问题,如果不平衡则记录倾斜方向,假设为X方向倾斜,最后比较J和K,如果第三次和第二次一样位X方向倾斜,则假币没有变换方向为K反之为J,平衡则为I

但是最坏情况下应该是第一次使用天平就发生倾斜,假设为X位倾斜则第二次比较ABE和CDF,如果平衡则在GH中,略。如果不平衡,则要则要看第二次使用天平是否和第一次一样是X方向倾斜,如果还是X方向倾斜则假币没有变换方向,假币在ABF中,反之在CDE中,假设第一次第二次都是X方向倾斜,则假币没有变换方向那么假币一定在ABE中,如果变换方向为Y方向倾斜则假币在过程中调换方向假币在CDE中。

假设假币在ABF中,那么第三次我们比较A和B,还是X方向倾斜则假币三次都没有变换方向所以假币为A,反之假币为B,平衡则为F,同理。

通过这道题,我思考了一个概念,N次使用天平最多能找到多少个硬币中的假币呢?

每一次进行比较我们都有三中状态,X方向倾斜、Y方向倾斜、和平衡

那上题中3次使用天平我们就可以得到 3^{3} =27种不同的结果,这时我想到XYX和YXY方向倾斜其实本质上是一样的,因为我们由于假币重量是重还是轻是未知的,所以只能判断第一次使用天平和第二次方向是相同还是相反的,所以这个结果需要除以2,但是有一种情况例外:即三次都为平衡状态,所以我们要先在总的情况下-1

所以,我们最终会得到 (3^{3}-1)/2 = 13 种情况,也就是说最终我们会获得13种不同的情况,也就是在13个硬币下使用三次天平找到假币。

同理5次使用天平最多在(3^{5}-1)/2 = 121种情况,也就是最多在121枚硬币中使用五次天平找到假币

推广到N次,则N次最多在(3^{N}-1)/2 个硬币中找到假币

对于本题具体的实践过程比较复杂,将三维推广到五维更加难写,欢迎大家能够整理出具体过程并在评论区附上链接。


2022.10.18于山东工商学院西校区5257

这篇关于在120枚外观相同的硬币中,有一枚是假币,并且已知假币与真币的重量不同,但不知道假币与真币相比较轻还是较重。可以通过一架天平来任意比较两组硬币,最坏情况下,能不能只比较5次就检测出这枚假币?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

比较学习难度:Adobe Illustrator、Photoshop和新兴在线设计平台

从入门设计开始,几乎没有人不知道 Adobe 公司两大设计软件:Adobe Illustrator和 Photoshop。虽然AI和PS很有名,有一定设计经验的设计师可以在早期探索和使用后大致了解AI和PS的区别,但似乎很少有人会系统地比较AI和PS。目前,设计软件功能多样,轻量级和网页设计软件已成为许多设计师的需求。对于初学者来说,一篇有针对性的AI和PS比较总结文章具有非常重要的指导意义。毕竟

基于CTPN(tensorflow)+CRNN(pytorch)+CTC的不定长文本检测和识别

转发来源:https://swift.ctolib.com/ooooverflow-chinese-ocr.html chinese-ocr 基于CTPN(tensorflow)+CRNN(pytorch)+CTC的不定长文本检测和识别 环境部署 sh setup.sh 使用环境: python 3.6 + tensorflow 1.10 +pytorch 0.4.1 注:CPU环境

python 在pycharm下能导入外面的模块,到terminal下就不能导入

项目结构如下,在ic2ctw.py 中导入util,在pycharm下不报错,但是到terminal下运行报错  File "deal_data/ic2ctw.py", line 3, in <module>     import util 解决方案: 暂时方案:在终端下:export PYTHONPATH=/Users/fujingling/PycharmProjects/PSENe

气象站的种类和应用范围可以根据不同的分类标准进行详细的划分和描述

气象站的种类和应用范围可以根据不同的分类标准进行详细的划分和描述。以下是从不同角度对气象站的种类和应用范围的介绍: 一、气象站的种类 根据用途和安装环境分类: 农业气象站:专为农业生产服务,监测土壤温度、湿度等参数,为农业生产提供科学依据。交通气象站:用于公路、铁路、机场等交通场所的气象监测,提供实时气象数据以支持交通运营和调度。林业气象站:监测林区风速、湿度、温度等气象要素,为林区保护和

Python几种建表方法运行时间的比较

建立一个表[0,1,2,3.......10n],下面几种方法都能实现,但是运行时间却截然不同哦 import time#方法一def test1(n):list=[]for i in range(n*10):list=list+[i]return list#方法二def test2(n):list=[]for i in range(n*10):list.append(i)#方法三d

相同的生命周期

1.保证相同的生命周期 bool GameOverLayer::init()   {       if (CCLayerColor::initWithColor(ccc4(0, 255, 0, 255))){              _label = CCLabelTTF::create("word", "Artial", 40);              CCSize size = CC

基于深度学习的轮廓检测

基于深度学习的轮廓检测 轮廓检测是计算机视觉中的一项关键任务,旨在识别图像中物体的边界或轮廓。传统的轮廓检测方法如Canny边缘检测和Sobel算子依赖于梯度计算和阈值分割。而基于深度学习的方法通过训练神经网络来自动学习图像中的轮廓特征,能够在复杂背景和噪声条件下实现更精确和鲁棒的检测效果。 深度学习在轮廓检测中的优势 自动特征提取:深度学习模型能够自动从数据中学习多层次的特征表示,而不需要

自动驾驶---Perception之Lidar点云3D检测

1 背景         Lidar点云技术的出现是基于摄影测量技术的发展、计算机及高新技术的推动以及全球定位系统和惯性导航系统的发展,使得通过激光束获取高精度的三维数据成为可能。随着技术的不断进步和应用领域的拓展,Lidar点云技术将在测绘、遥感、环境监测、机器人等领域发挥越来越重要的作用。         目前全球范围内纯视觉方案的车企主要包括特斯拉和集越,在达到同等性能的前提下,纯视觉方

Struts2与struts1与springmvc比较

最近做项目用到了struts2,之前一直是用struts1和springMVC。感觉到了struts2从很大程度上和这两个还是有很大区别的,所以今天搜集了些资料,给他们做一下对比。            Struts1官方已经停止更新,现在用的也比较少,这里主要讲一下struts2和struts1比较都有哪些不同和进步。Struts2可以说不是完全从struts1改进来的,因为

算法8—不通过比较,找出两个数的最大值

问题: 比如:给定两个值 5和10,不通过比较,直接找出最大值。 分析: 一旦涉及到不用比较找最大值,想都不用想,一般只能通过位运算来实现。  max = a - ((a-b)&((a-b)>>31)) 或者 max = ((a+b)+|a-b|)/2 如果找最小值,我们只需把两个值相加,减去max即可。