`
java-mans
  • 浏览: 11417237 次
文章分类
社区版块
存档分类
最新评论

天平秤重问题

 
阅读更多

[问题描述]:
有一只天平和N只砝码,如何设计这N只砝码,才能使这天平能够连续秤出的重量最大?假设砝码的最小单位为1克,秤物时物品放在天平的左边,砝码可以放在右边也可以放在左边,不管放在哪一边只要天平能够平衡就行,物品的重量应是右边砝码总重量减去左边砝码的重量。
输入一个物品的重量,输出其秤重方案。
[分析与算法选择]:
这个问题是从一个经典的数学问题变化而来,这个数学问题的大意是:一个物体重40磅,掉在地上后摔成四片,这四片恰好能够作为砝码连续秤出40磅以内的物品的重量,这四片的重量如何?
(1)如何设计砝码?
我们先不去看单位,直接用数字来描述。因为要能连续秤出一范围内的值,所以首先要有1,从数学上可以知道,N只砝码本身最大能秤的总重就是这N只砝码的重量和,下面就看如何保证连续的数都能秤出了。设这N只砝码的重量分别为W1、W2……Wn,且有W1<=W2<=……<=Wn, W1=1,下面看W2如何设计。
如果W2=1,1、2都能秤出;如果W2=2,1、2、3都能秤出;如果W2=3,1可以秤出(W1)、2可以秤出(W2-W1)、3可以秤出(W2)、4也可以秤出(W1+W2);如果W2=4,则2不能秤出;所以W2最大为3(=3*W1)。
同理可推出W3最大为9(=3*W2);
……
Wn最大为3n-1(=3*Wn-1)。
设计方案为这N只砝码重分别为:1、3、9、27、……、3n-1。
(2)如何根据物品重量得到秤重方案?
物品(+砝码) 砝码

因为物品固定放在一连(如左边),只要考虑砝码放的情况。任一个砝码都可能有三种状态:一是跟被秤物品放在一起(如左边),二是不放,三是放在物品另一边(如右边)。最后物品的重量等于所有砝码乘上相应系数的和。这个系数可能是:-1、0、1。

先来看3只砝码时各种重量的称法,如下表所示,其中-1表示砝码放在物品一边、0表示砝码不放进天平、1表示砝码放在物品另一边,如果每一位加1后便只会是0、1、2这3个数字中的一个,所以可以方便地跟三进制数对应起来:

物品重量

3只砝码

每一位加1

9

3

1

三进制数

十进制数

1

0

0

1

112

14(=1+13)

2

0

1

-1

120

15(=2+13)

3

0

1

0

121

16(=3+13)

4

0

1

1

122

17(=4+13)

5

1

-1

-1

200

18(=5+13)

6

1

-1

0

201

19(=6+13)

7

1

-1

1

202

20(=7+13)

8

1

0

-1

210

21(=8+13)

9

1

0

0

211

22(=9+13)

10

1

0

1

212

23(=10+13)

11

1

1

-1

220

24(=11+13)

12

1

1

0

221

25(=12+13)

13

1

1

1

222

26(=13+13)

由上表我们可以总结出这样的计算方法:对于给定的物品重量,先确定它最多用到多大的砝码,假定是3n-1,那么先将这个物品的重量加上1、3、……3n-1,得到一个数,再对这个数进行除3取余运算,当余数为0时表示相应的砝码跟物品放在一起,余数为1时表示相应的砝码不放,为2时表示放在物品的另一边。


分享到:
评论

相关推荐

    winform读取串口电子秤重量

    耀华3190-A12+E型号电子秤,串口连接,winform读取通过串口读取重量;有两种模式:1、连续发送模式请使用代码中的方案2;2、指令模式请使用方案1;默认模式是指令模式(需要设置电子秤为指令模式,才可以使用清零、...

    labview课程设计电子秤

    1. 由于本程序使用了Access数据库,因此需要计算机上安装有Microsoft Access。 3. 将本程序下载到本地...4. 运行虚拟电子秤,输入用户名:admin,密码:123456 登录系统。进入系统后可以更改密码或管理用户等等。

    梅特勒天平SICS指令集通讯协议

    梅特勒天平与计算机专用的SICS指令集,通讯协议,英文版。

    实验银币问题

    现用天平秤银币,找出不合格的银币,且在最坏情况下秤银币的次数最少。 输入 输入有若干行。每行上有一个整数n,表示银币个数,n。 当n=0,表示输入结束。 输出 对输入大于0的整数n,输出2行。第1行输出n的值,第2...

    rxtx java获取电子称重量数据完整版.zip

    java RS232串口通讯(电子天平数据抓取) 使用网页读取串口电子秤的重量 使用插件方式或者JS方式实现, 在网页的特定地方显示当前通过RS232链接的电子秤上的重量数据。 支持主要浏览器:Chrome,Firefox,IE8以上 我...

    C#连接电子秤测试端口

    C#编写的简单连接电子秤,读取电子秤称重数据,已经发送指令到电子秤的工具,测试系统与电子秤的连接,可根据功能进行二次开发,

    S7-1200 PLC与电子秤进行MODBUS RTU通信的具体步骤.docx

    S7-1200 PLC与电子秤进行MODBUS RTU通信的具体步骤

    java RS232串口通讯(电子天平数据抓取)

    使用网页读取串口电子秤的重量,使用插件方式&JS方式实现, 在网页的特定地方显示当前通过RS232链接的电子秤上的重量数据。 我的博客 java RS232串口通讯上有对此有相关方法,希望能对大家有帮助。

    托利多电子秤(ind245协议)读取串口数据

    using IND245; static void Main(string[] args) { ... int BAUDRATE = 9600; int TESTNUM = 3; double weight = 0;... string weightUnit = string.Empty;... if (i245.SerialOpen(PORTNAME, BAUDRATE).Equals(0)) ...

    基于单片机的电子秤设计(2).doc

    随着计量技术和电子技术的发展 ,传统纯机械结构的杆秤、台秤、磅秤等称量装置逐步被淘汰,电子称量装置电子秤、 电子天平等以其准确、快速、方便、显示直观等诸多优点而受到人们的青睐。 和传统秤相比较,电子秤...

    电子秤阅读器:一种移动应用程序,能够识别电子秤读数中显示的重量

    电子秤阅读器:一种移动应用程序,能够识别电子秤读数中显示的重量

    电子天平的设计.doc

    同时把重量、金额显示到液晶LCD上,它可以分析压力过量程,并发出超 重提示。 关键词:压力传感器 放大器 单片机 Abstract Nowadays,electronics steelyard is very popular and it will replace the ...

    论文研究 - 尼日利亚奥约州家庭的消费后固体纺织品废物管理分析

    使用灵敏的微普查规模秤和称重天平来称取分类的纺织品废料的重量。 使用半径为10 cm,高度为40 cm的校准圆柱体来收集切碎的废物。 个人每天产生的消费后固体纺织品废物的平均值为0.11 kg±0.08,每天的体积为354 ...

    GameAutomation

    您只能将金条放置在秤盘(碗)上,并找出哪个秤重或多或少。 网站网站允许您模拟缩放过程。 您可以在左右碗状网格中写出金条编号。 按下“称量”按钮,它将告诉您哪个站点或多或少称重,或者它们是相同的重量。 ...

    Vesatogo Bridge-crx插件

    现在,您可以从秤桥读取重量到您的Web应用程序中。 如果Bridge Daemon在后台运行(充当服务提供者),则此扩展帮助您读取称重天平的重量。 支持语言:English

    小模拟信号的高24位的精确度测量

    一个量程10千克的秤若能分辨出1克的重量变化,那么这个秤的主要组件常常是增量累加模数转换器。设计师需要温度测量的精确度达到0.01度时,增量累加ADC也常常成为首选方案。增量累加ADC还能够取代那些前面加有一个...

    基于单片机的地磅设计.doc

    物流、交通、运输流程中涉及许多测重的环节,地磅在其中发挥着主角的地位。传统的 地磅在称重、输入设备、及其精确性上都存在极大的不足,适应不了快速发展的社会需 求,产生极大的不便捷。本文在给出智能地磅结合...

    模拟技术中的小模拟信号的精确度测量的设计解析

    一个量程10千克的秤若能分辨出1克的重量变化,那么这个秤的主要组件常常是增量累加模数转换器。设计师需要温度测量的精确度达到0.01度时,增量累加ADC也常常成为首选方案。增量累加ADC还能够取代那些前面加有一个...

    模拟技术中的增量累加ADC以高24位的精确度测量小模拟信号

    一个量程10千克的秤若能分辨出1克的重量变化,那么这个秤的主要组件常常是增量累加模数转换器。设计师需要温度测量的精确度达到0.01度时,增量累加ADC也常常成为首选方案。增量累加ADC还能够取代那些前面加有一个...

    微弱模拟信号的高测量的设计解析

    一个量程10千克的秤若能分辨出1克的重量变化,那么这个秤的主要组件常常是增量累加模数转换器。设计师需要温度测量的度达到0.01度时,增量累加ADC也常常成为方案。增量累加ADC还能够取代那些前面加有一个增益级的...

Global site tag (gtag.js) - Google Analytics