MT【142】Bachet 问题,进位制

问题:
满足下面两种限制条件下要想称出40以内的任何整数重量,最少要几个砝码:
i)如果砝码只能在天平的某一边;
ii)如果砝码可以放在天平的两边.

提示:对于 i)先证明如下事实:

砝码 1,2,4,,2n1 可以称出 2n1 以内的任何整数质量,且没有其他的仅由 n 个砝码组成的集合具有同样的称重效果(能称出同样多的一列从 1 开始的连续重量)

分析:
因为 12n1 的任何正整数无一例外的可以用唯一的表示方式表示成一个 n 位二进制数,表示成和式为n10as2s, 其中 as{0,1}. 从而这样的砝码就可以满足我们的目标,且"没有浪费"(没有两种砝码的组合会产生相同的效果).既然没有浪费,故没有另外的选择的砝码能称更长的一列重量.
为了称重量为 1 的质量,有一个砝码必须是 1 ;为称重量为 2 的质量,有一个砝码必须为 2; 为称重量为 4 的质量,有一个砝码必须为 4; 依此类推, 1,2,4,,2n1 是能实现我们目标的唯一的一组砝码.

回到此题,
40不是形如2n1的数,由上述分析 可知道,砝码 1,2,4,8,16,32 可以称出 63 以下的任何质量,而没有五个砝码可以称出超过31的质量.但值得注意的是对于 40 而言,解答不唯一.砝码 1,2,4,8,9,16 也能称出 40 以内的任何质量.

对于ii)可以参考北大的自主招生题MT【38】

posted @   M.T  阅读(333)  评论(0编辑  收藏  举报
编辑推荐:
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· 对象命名为何需要避免'-er'和'-or'后缀
阅读排行:
· “你见过凌晨四点的洛杉矶吗?”--《我们为什么要睡觉》
· 编程神器Trae:当我用上后,才知道自己的创造力被低估了多少
· C# 从零开始使用Layui.Wpf库开发WPF客户端
· C#/.NET/.NET Core技术前沿周刊 | 第 31 期(2025年3.17-3.23)
· 接口重试的7种常用方案!
点击右上角即可分享
微信分享提示