MT【142】Bachet 问题,进位制
问题:
满足下面两种限制条件下要想称出40以内的任何整数重量,最少要几个砝码:
i)如果砝码只能在天平的某一边;
ii)如果砝码可以放在天平的两边.
提示:对于 i)先证明如下事实:
\[\textbf{砝码 $1,2,4,\cdots,2^{n-1}$ 可以称出 $2^n-1$ 以内的任何整数质量,且没有其他的仅由 $n$ 个砝码组成的集合具有同样的称重效果(能称出同样多的一列从 $1$ 开始的连续重量)}\]
分析:
因为 \(1\) 到 \(2^n-1\) 的任何正整数无一例外的可以用唯一的表示方式表示成一个 \(n\) 位二进制数,表示成和式为\(\sum\limits_{0}^{n-1}{a_s2^s}\), 其中 \(a_s\in\{0,1\}\). 从而这样的砝码就可以满足我们的目标,且"没有浪费"(没有两种砝码的组合会产生相同的效果).既然没有浪费,故没有另外的选择的砝码能称更长的一列重量.
为了称重量为 \(1\) 的质量,有一个砝码必须是 \(1\) ;为称重量为 \(2\) 的质量,有一个砝码必须为 \(2\); 为称重量为 \(4\) 的质量,有一个砝码必须为 \(4\); 依此类推, \(1,2,4,\cdots,2^{n-1}\) 是能实现我们目标的唯一的一组砝码.
回到此题,
40不是形如\(2^n-1\)的数,由上述分析 可知道,砝码 \(1,2,4,8,16,32\) 可以称出 63 以下的任何质量,而没有五个砝码可以称出超过\(31\)的质量.但值得注意的是对于 40 而言,解答不唯一.砝码 1,2,4,8,9,16 也能称出 40 以内的任何质量.
对于ii)可以参考北大的自主招生题MT【38】
MT【142】Bachet 问题,进位制的更多相关文章
- Codevs 2898 卢斯的进位制
时间限制: 1 s 空间限制: 32000 KB 题目等级 : 青铜 Bronze 题目描述 Description 著名科学家卢斯为了检查学生对进位制的理解,他给出了如下的一张加法表,表中的字母 ...
- 【XSY1529】小Q与进位制 分治 FFT
题目大意 小Q发明了一种进位制,每一位的变化范围是\(0\)~\(b_i-1\),给你一个这种进位制下的整数\(a\),问你有多少非负整数小于\(a\).结果以十进制表示. \(n\leq 1 ...
- ACM 求全排列(字典序、邻位对换、递增进位制数,递减进位制数)
字典序:(联合康托展开就也可以按照中介数求) 邻位对换.递增进位制数,递减进位制数:具体的实现和算法讲解如下: 代码..C++版的实现并不好..因为是挨个向后找的,如果K很大的时候会超时,不过...思 ...
- 2016北京集训 小Q与进位制
题目大意 一个数每一位进制不同,已知每一位的进制,求该数的十进制表达. 显然有 $$Ans=\sum\limits_{i=0}^{n-1}a_i \prod\limits_{j=0}^{i-1}bas ...
- The Moronic Cowmpouter(负进位制转换)
http://poj.org/problem?id=3191 题意:将一个整型的十进制整数转化为-2进制整数. #include <stdio.h> #include <algori ...
- poj3191(负进位制)
题目链接:https://vjudge.net/problem/POJ-3191 题意:将一个int范围的整数用-2进制表示并输出. 思路:将十进制转换成-2进制,原理也类似于短除法.但不同的是不是简 ...
- 高精度进位制转换,Poj(1220)
转自ACdream. #include <stdio.h> #include <string.h> #include <stdlib.h> #define MAXS ...
- (2016北京集训十)【xsy1529】小Q与进位制 - 分治FFT
题意很简单,就是求这个数... 其实场上我想出了分治fft的正解...然而不会打...然后打了个暴力fft挂了... 没啥好讲的,这题很恶心,卡常卡精度还爆int,要各种优化,有些dalao写的很复杂 ...
- 【搬砖】安卓入门(2)- Java开发编程基础--进制转换和运算符
02.01_Java语言基础(常量的概述和使用)(掌握) A:什么是常量 在程序执行的过程中其值不可以发生改变 B:Java中常量的分类 字面值常量 自定义常量(面向对象部分讲) C:字面值常量的分类 ...
随机推荐
- arduino八段数码管使用
一:八段数码管的使用 控制要求:0-9的计时数据 实物连接图: 控制代码: //智慧自动化2018.6.11 ;//定义数字接口7 连接a 段数码管 ;// 定义数字接口6 连接b 段数码管 ;// ...
- [Unity Shader] 常用的数值类型和语义
书看到第八章,跟随写了一些例子,但有些数值类型的使用还是需要特别注意,经常需要查阅,在这里做一下总结. 1 ShaderLab属性类型和Cg变量类型的匹配关系 Color.Vector:float4, ...
- 小强版之无码理解C语言指针
1. 先从普通变量开始 2. 撸完变量撸指针 3. 故事情节进一步发展,此处少儿不宜 4. 奶茶妹妹捉奸,小强死定了 5. 源码欣赏 #include <stdio.h> ...
- node.js主从分布式爬虫
前言 前文介绍过用Python写爬虫,但是当任务多的时候就比较慢, 这是由于Python自带的http库urllib2发起的http请求是阻塞式的,这意味着如果采用单线程模型,那么整个进程的大部分时间 ...
- Linux常用压缩解压命令
tar命令 解包:tar zxvf FileName.tar 打包:tar czvf FileName.tar DirName gz命令 解压1:gunzip FileName.gz 解压2:gzip ...
- linux-shell-screen后台调用-后台运行脚本和命令-仿start命令-伪窗口界面
序 我比较熟练bat.cmd脚本.刚接触使用shell时,总会习惯想用windows窗口界面来套用shell脚本.于是找到screen后台命令,它可以交互shell脚本,保持后台运行.但是在批处理ba ...
- PHP字符编码转换库iconv的一个细节
先来看代码 <?php $charset = 'GBK'; $str = '中华人民共和国中华人民共和国中华人民共和国中华人民共和国'; ; $str2 = iconv('UTF-8', $ch ...
- API验证
API验证说明 API验证: a. 发令牌: 静态 PS: 隐患 key被别人获取 b. 动态令牌 PS: (问题越严重)用户生成的每个令牌被黑客获取到,都会破解 c. 高级版本 PS: 黑客网速快, ...
- Scrum Meeting 11.09
成员 今日任务 明日计划 用时 徐越 解决bug:可以重复点赞:answer被选为best answer后点赞数归零:首页不能正确显示问题的回复数.修改搜索功能的代码 继续测试相关app功能,如果达 ...
- 20172313『Java程序设计』课程结对编程练习_四则运算第二周阶段总结
20172313『Java程序设计』课程结对编程练习_四则运算第二周阶段总结 结对伙伴 20172326康皓越 博客地址(http://www.cnblogs.com/326477465-a/p/90 ...