天平找假币问题

news/2024/10/17 18:12:48/

问题:给定12枚硬币,其中有一枚假币,其重量可能比真币重也可能轻,现只提供一个天平,问至少需要几次天平称重才能找到假币。
解决方案
1)将12枚硬币平均分为3堆记为A,B,C,每堆有4枚硬币。将A,B两堆分别放在天平的两端,若天平平衡。说明假币在C堆中。
a)设C堆中的硬币为1,2,3,4。将1,2和3,4分别放在天平的两端,此时天平肯定不平衡,若1,2硬币所在的端比3,4所在的端重。
这里写图片描述
b)将左端替换为1,4,2放在右端,右端将3换下来,同时在其它8枚真币中选取一枚记为甲放在右端。得到如下图:
这里写图片描述
此时,若两边平衡说明3是假币且比真币轻;若左端重,说明1是假币且比真币重;若右端重,说明(没搞清楚,回头再想想?)
若天平不平衡说明假币在A,B两堆中,C堆中的全部为真币:设A堆中的硬币为1,2,3,4;B堆中的硬币为5,6,7,8;分别放在天平的左端和右端,并设左端重
这里写图片描述
将左端换为1,2,5,从C堆中找到一枚真币甲,将天平右端替换为3,4,甲。
这里写图片描述
a)此时若天平平衡了,说明6,7,8中有假币,6,7称一次,若平衡说明8是假币,且假币轻,若不平衡,轻的那一端就是假币。
b)若左重右轻,说明1,2中是假币,且假币轻,1,2再称一次就找出来了。
c)若左轻右重,说明3,4中是假币,且假币重,3,4再称一次同样可以找出来了
延伸
若称k次,每次有平衡、左重右轻、左轻右重,3种情况。则k次称量的总情况为3的k次方种,而12枚币中假币可能在其中的一枚且可能比真币重也可能轻,这样总共有24种情况。就需要k次称量所产生的3的k次方种情况能够覆盖硬币的情况即3的k次方大于等于24,则至少需要3次。
对于A,B平衡的情况下,怎么通过3次找到假币,并知道其比真币重还是轻还未想清楚。


http://www.ppmy.cn/news/533359.html

相关文章

真币与假币的重量问题

现有八枚硬币a b c d e f g h,已知其中一枚是假币,其重量不同于真币,但不知是较轻或较重,如何使用天平以最少的比较次数,决定出哪枚是假币,并得知假币比真币较轻或较重。   单独求假币的问题是不难的&…

【Rust】1、实战:语法和数据结构、生命周期-所有权-借用、自制 CPU、内存、文件

文章目录 零、Rust 好用的资源一、概述1.1 安全性1.1.1 垂悬指针1.1.2 数据竞争1.1.3 迭代器失效 1.2 性能1.3 vscode 設置 二、基础语法2.1 循环2.2 引用2.3 生命周期2.4 泛型2.5 实战grep项目2.6 数组2.6.1 数组和切片2.6.2 动态数组2.6.3 初始化 2.7 包含第三方库2.8 命令行…

【Linux】MySQL 高级 SQL 语句 (二)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 MySQL 高级 SQL 语句 连接查询CREATE VIEW 视图UNION 联集交集值无交集值CASE空值(NULL) 和 无值() 的区别正则表达式 连接查询 mysql> select * from xjz; #xjz表格 ---…

【Redis】Lua的基础入门与使用

目录 一、什么是Lua 二、变量与循环 1、数据类型 2、变量的声明 3、循环 三、条件控制与函数 1、函数 2、条件控制 一、什么是Lua 他是一种轻量小巧的脚本语言,是一门用c语言编写的用c语言解析执行的高级语言。lua运行时把lua脚本编译成字节码,调…

46_ue4进阶末日生存游戏开发[储物箱重叠结束事件bug]

储物箱重叠结束事件,连续反应两次。 原因是角色有两个碰撞盒子组件 解决: 我们设置外层碰撞盒子的碰撞预设如下 bug解决。

45_ue4进阶末日生存游戏开发[储物箱点击功能]

在储物箱ui蓝图里的该函数,绑定一个事件 添加函数 为该函数添加输入 首先判断是不是左键点击 然后判断背包是否有空间添加 添加成功后,调用cabinet的remove函数 右键点击依然要调用remove函数 绑定函数 测试成功。

多线程注意事项

退出程序时等待多线程完成 QObject::connect(QApplication::instance(), &QApplication::aboutToQuit, [this]() {// 判断 QtConcurrent::run 是否在运行if (future.isRunning()) {// 等待任务完成future.waitForFinished();} });

训练2 寻找空储物箱子 (通过数组的length属性,可获得数组的长度)

训练2 寻找空储物箱子 超市有20个储物箱,现第2、3、5、8、12、13、16、19、20号尚未使用,使用数组的长度分别输出尚未使用的储物箱个数,以及已经使用的储物箱个数。 /*训练2 寻找空储物箱子* 超市有20个储物箱,现第2、3、5、8、1…