MT【142】Bachet 问题,进位制
问题:
满足下面两种限制条件下要想称出40以内的任何整数重量,最少要几个砝码:
i)如果砝码只能在天平的某一边;
ii)如果砝码可以放在天平的两边.
提示:对于 i)先证明如下事实:
砝码 1,2,4,⋯,2n−1 可以称出 2n−1 以内的任何整数质量,且没有其他的仅由 n 个砝码组成的集合具有同样的称重效果(能称出同样多的一列从 1 开始的连续重量)
分析:
因为 1 到 2n−1 的任何正整数无一例外的可以用唯一的表示方式表示成一个 n 位二进制数,表示成和式为n−1∑0as2s, 其中 as∈{0,1}. 从而这样的砝码就可以满足我们的目标,且"没有浪费"(没有两种砝码的组合会产生相同的效果).既然没有浪费,故没有另外的选择的砝码能称更长的一列重量.
为了称重量为 1 的质量,有一个砝码必须是 1 ;为称重量为 2 的质量,有一个砝码必须为 2; 为称重量为 4 的质量,有一个砝码必须为 4; 依此类推, 1,2,4,⋯,2n−1 是能实现我们目标的唯一的一组砝码.
回到此题,
40不是形如2n−1的数,由上述分析 可知道,砝码 1,2,4,8,16,32 可以称出 63 以下的任何质量,而没有五个砝码可以称出超过31的质量.但值得注意的是对于 40 而言,解答不唯一.砝码 1,2,4,8,9,16 也能称出 40 以内的任何质量.
对于ii)可以参考北大的自主招生题MT【38】
懂,会,熟,巧;趁青春尚在,奋力前行,追求卓越!
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· 对象命名为何需要避免'-er'和'-or'后缀
· “你见过凌晨四点的洛杉矶吗?”--《我们为什么要睡觉》
· 编程神器Trae:当我用上后,才知道自己的创造力被低估了多少
· C# 从零开始使用Layui.Wpf库开发WPF客户端
· C#/.NET/.NET Core技术前沿周刊 | 第 31 期(2025年3.17-3.23)
· 接口重试的7种常用方案!