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:字面值常量的分类 ...
随机推荐
- C# 连接MongoDB,含用户验证
配置文件中链接地址:mongodb://test:123456@192.168.168.186:9999/temp 读取配置文件: /// <summary> /// 构造函数 /// & ...
- selenium的基本定位方式总结
Selenium提供了8种定位方式. id name class name tag name link text partial link text xpath css selector 这8种定位方 ...
- C#如何在各类控件中输入\输出数据
文本框:TextBox Text - 按钮文字 TextBox.text=""; s=TextBox.text; 单选按钮+复选按钮 RadioButton,CheckBox Te ...
- Netty源码分析第8章(高性能工具类FastThreadLocal和Recycler)---->第7节: 获取异线程释放的对象
Netty源码分析第八章: 高性能工具类FastThreadLocal和Recycler 第七节: 获取异线程释放的对象 上一小节分析了异线程回收对象, 原理是通过与stack关联的WeakOrder ...
- sqli-labs学习笔记 DAY8
DAY 8 sqli-lab Page-3 sqli-labs lesson 38 What is Stacked injection? https://blog.csdn.net/Fly_hps/a ...
- python基础网络编程--转
python之网络编程 本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类: 消息传递(管道.FIFO.消息队列) 同步(互斥量.条件变量.读写锁.文件和写记录锁.信号量) 共享内存(匿名的 ...
- Spring的bean创建详解
IoC容器,又名控制反转,全称为Inverse of Control,其是Spring最为核心的一个组件,其他的组件如AOP,Spring事务等都是直接或间接的依赖于IoC容器的.本文主 ...
- iOS 动态库、静态库 . framework 总结(2017.1.25 修改)
修改于2017.1.25 使用Xcode Version 8.2.1 1.怎么创建.framework? 打开Xcode, 选择File ----> New ---> Project 选择 ...
- 苏宁笔试:UML类图中的关系
1. 依赖 2. 关联 3. 聚合 4. 组合 5. 泛化 6. 实现
- check the manual that corresponds to your MySQL server version for the right syntax to use near 'desc
往一个新建的MySQL表中插入数据报错 2018-08-22 14:09:18.875 ERROR 9256 --- [apr-8080-exec-9] o.s.b.w.servlet.support ...