«October 2025»
1234
567891011
12131415161718
19202122232425
262728293031


公告

本站技术贴除标明为“原创”的之外,其余均为网上转载,文中我会尽量保留原作者姓名,若有侵权请与我联系,我将第一时间做出修改。谢谢!

             ——既瑜


天气预报(南京)


我的分类(专题)

首页(183)
【趣味文摘】(22)
【五子连珠】(13)
【技术文档】(136)
【电脑技术】(6)
【疑难问题】(1)
【我的心情】(5)


最新日志
花语(中英文对照版)
各种花的花语
NTFS格式的7个精彩问答(pconli
童言无忌,有趣得一蹋
给MM修电脑的三个步骤[转载]
J2EE 面试题综合
JAVA编程规则
[转] P2P之UDP穿透NAT的原理与
[转]词法分析器
文件加密技术
一个让人发狂的PI求解C程序
[转]直线生成算法之DDA
[转]利用内核对象----互斥量实现应用
[转]如何正确的计算文件收发进度
双机调试VC程序
[转]分治法优化大整数乘法 C++实现
浮点数值的内存结构
[转]双链表实现大整数的加法与乘法[VC
拜占廷将军问题[转]
某人的挂QQ的程序源代码,虽然没用了,拿

最新回复
回复:vc中的CString的操作
回复:[转]分治法优化大整数乘法 C++
回复:[转]分治法优化大整数乘法 C++
回复:花语(中英文对照版)
回复:基本排序算法比较与选择[转载]
回复:c++中强制类型转换操作符小结
回复:c++中强制类型转换操作符小结
何必那么执着于是大头猫还是愤怒的小鸟,淡
回复:浮点数值的内存结构
回复:花语(中英文对照版)
回复:花语(中英文对照版)
回复:花语(中英文对照版)
回复:花语(中英文对照版)
回复:花语(中英文对照版)
回复:32位位图到24位位图的转换
dren, ages 16 and 20
回复:花语(中英文对照版)
回复:花语(中英文对照版)
回复:花语(中英文对照版)
回复:各种花的花语

留言板
签写新留言

不是0-1背包喔
桂花的花语``
谢谢
提议
提议

统计
blog名称:★既瑜★
日志总数:183
评论数量:636
留言数量:-25
访问次数:1417134
建立时间:2005年3月12日

链接


http://www.nju.edu.cn
http://bbs.nju.edu.cn 
http://www.t7-online.com
http://www.csdn.net
http://www.91f.net
http://www.crsky.com
我的MSN BLOG 

联系我

  OICQ:215768265
  njucs2001@hotmail.com
  erichoo1982@gmail.com

 

W3CHINA Blog首页    管理页面    写新日志    退出


[【技术文档】]砝码称重问题
既瑜(224499) 发表于 2005/3/16 17:10:52

 [砝码称重问题]给定一架天平,要求用m个砝码称出1~n克范围内的所有物品的重量 ,问应该如何选择砝码。 定理: 由m个数构成的由小到大排列的数列{a(1),a(2),...a(m)},设A(k)=∑ a(i), 其中i从1到k, 则 a(1) = 1且a(j+1) <= 2A(j) +1, j取1,2,..,m-1     (1式) 是该数列作为砝码序列可称量{0,1,..,Am}范围内的任意整数重量的充要条件。特 别的,上式取等号时, 该序列是唯一可能的砝码序列,并且有a(j) = 3^(j-1), 对于j=1,2,..,m 推论: 重量为n的物体要分成m份重量为整数的物体的序列{a(1),a(2),..a(m)}, 设M=∑3^(i-1),其中i 从1到m,则有三种情况: 1) M<n, 无解; 2) M=n,有唯一的解 a(j)=3^(j-1), j=1,2,..m; 3) M>n,可能有多组解,解为满足(1式)并且∑a(i)=n,其中i从1到m,的所有整 数序列。 定理的证明: (充分性) 用数归法: 当i=1的时候,a(i)=1显然成立; 假设i=k的时候定理充分性成立,即用满足(1)式的前k个砝码可以称量的重量 W(k)为满足0<=W(k)<=A(k) 的所有整数,则i=k+1时,应可以称量W(k+1),应为0<=W(k+1)<=A(k+1)范围内的所 有整数。分段讨论如下 : (a)对于0<=W(k+1)<=A(k),显然可以由前k个砝码称量; (b)对于A(k)<W(k+1)<=a(k+1), 由假设0<=W(k)<=A(k), 交换左右盘的砝码,可 以产生配合砝码a(k+1) 使用的负砝码为W(k)' 可以是满足-A(k)<=W(k)'<=0的所有整数。与大砝码a(k+1) 一起使用可以得到a (k+1)+W(k)' ,一定可以称量某段连续范围的所有整数,因为a(k+1) <=2A(k)+1, 所以a(k+1)-A(k) <= A(k)+1, 因此a(k+1)+W(k)'产生的下限为a(k+1)-A(k),上限为a(k+1),所以可以 称量A(k)<W(k+1)<=a (k+1)内的所有W(k+1); (c)对于a(k+1)<=W(k+1)<=A(k+1),与(b)同理可以得到称量的上下限分别为: a(k+1)+A(k) = A(k+1)和a (k+1); 因此当i=k+1的时候定理充分性也成立,由数归法知定理充分性成立。 (必要性) i=1时,显然必须有总量为1的砝码; i>1时,反证之,如果存在某个K,使得(1)不成立,即2A(k)+1<a(k+1),则重量 A(k)+1既不能用前面的 k-1个砝码称重,又因为a(k+1)-A(k)>A(k)+1而不能用a(k+1)配合着称重。所以矛 盾,因此必要性成立。 推论也可以用数归法简单的证明,这里我就不证了,打字太累了:) 根据以上的定理和推论,可以很容易的求出对于重量为任意的n的物体,用m个砝码 可以称出来的砝码的方 案。当n=∑3^(i-1), i从1到m的时候,有唯一解a(i)=3^(i-1),可以改写成 a(i)=2(∑aj)+1,其中j从1 到i-1,一个循环就直接输出了;当n>∑3^(i-1)的时候无解;当n<∑3^(i-1)的时 候只要根据式(1)并保 证∑a(i)=n搜索就可以了。可以递归的搜索求解。

阅读全文(1897) | 回复(0) | 编辑 | 精华


发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)

站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.877 second(s), page refreshed 144803126 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号