二进制与三进制的那些趣题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
导航
博客园 首页 新随笔 联系
订阅 管理
公告
昵称: 苍梧 园龄: 6年2个月 粉丝: 573 关注: 2 +加关注
posts ­ 19, comments ­ 255, trackbacks ­ 0, articles ­ 0
二进制与三进制的那些趣题 Posted on 2010­12­22 12:43 苍梧 阅读(5742) 评论(3) 编辑 收藏
问题2:
答案与分析:
如果没有1小时的时间限制,那么利用二分搜索的思想既可 以解决问题。( 第一次取16种溶液中的8种放入一个试管,然后 加入试剂A,看有没有反应,根据结果再进行细分 。 这样只需4 个试管,但是需要4个小时 )有了这个1小时的时间限制后这种 方法就不管用了。一种正确的解答如下:
先来思考几个问题,并不难,各位大牛应能秒杀:
1. 小明是个卖苹果的,小红一次在小明那买N(N<1024)个苹 果。小明每次都要数N个苹果给小红,唉,太麻烦了。于是小明 想出了一种方法:他把苹果分在10个袋子中,则无论小红来买多 少个苹果,则他都可以整袋整袋的拿给小红。问怎样分配苹果到 各个袋子?
<
2015年7月
首先将27个小球按照0到26编号,编号的三进制的形式如 下:
000
001
002
010 011 012 020 021 022 100 101 102 110 111 112 120 121 122 200 201 202 210 211 212 220 221 222 第一称量将编号的三进制第1位为1的小球(9个)放在左 边,编号第1位为2的小球(9个)放在右边,编号第1位为0的不 放。 第二次称量将编号的三进制第2位为1的小球(9个)放在左 边,编号第2位为2的小球(9个)放在右边,编号第2位为0的不 放。 第三次称量将编号的三进制第3位为1的小球(9个)放在左
需要明白的是,一个砝码可以放在要称量的物品的同侧,也 可以放在对侧,当然也可以不放。砝码的三种状态可以表示为: 不放 ( 0 )、放在物品对侧( +1 )、放在物品同侧 ( - 1 ) 。
因此各个砝码碎片的重量就是各个平衡三进制数位的权重( 3^0 , 3^1 , 3^2 , 3^3 ),即 1 , 3 , 9 , 27 。
边,编号第3位为2的小球(9个)放在右边,编号第3位为0的不 放。
好了,根据3次称量的结果,我们就可以知道较重的那个小 球的编号了。假设3次称量结果的编号分别为0,1,2 ,那么我 们可以知道较重的是21号小球。因为21的三进制是( 210 ) , 因此只有21号小球在第一次称量时没放,第二次放在左边,第三 次放在右边。
了。
<2>第二次称量时天平平衡,则我们可以肯定异常小球编号 第二位必然是0 。然后你可以仿照上面的做法通过编号的最高位 来找出异常小球的编号。
(2)若第一次称量时天平平衡,则异样小球编号的最低位必然是0 。同样你可以参考上面的思路通过编号的第2,3位来找到异样小 球,这里就不啰嗦了。
另有这个问题的另一种解法供参 考:http://blog.sina.com.cn/s/blog_49d0731a010007i0. html。
问题1:
答案:按1,2,4,8,16,.......,512 分析:
第一个问题用二进制编码思想可以轻松解决,相信学计算机 的各位不会有什么困难。
按照二进制编码的特点, n位二进制数的各个数位的权重从 低到高分别是2^0 ,2^1 , 2^2 ,…… 2^( n – 1 ) 。 n位 无符号二进制数可以表示0到(2^n)- 1 ,共n个数。 而二进制数位只有1和0两种状态,正好对应题目中苹果袋子 的“给”与“不给”两种状态。因此只要将各个袋子分别装入 2^0 , 2^1 , 2^2 , …… , 2^9 个苹果即可满足题目要求。例 如:需要66个苹果, 因66的二进制是 1000010 ,则小明只要 将苹果个数为2^1(2个) 和2^6(64个)的袋子给小红就可以 了。
3. 27个小球。其中一个比其他小球都要重一点。给你一个天 平,最多称3次,找出这个特殊的小球。
找找看
谷歌搜索
常用链接
我的随笔 我的评论 我的参与 最新评论 我的标签
最新随笔 1. Let’s Play Games! 2. 机器学习中的相似性度量 3. 神经网络编程入门 4. MPEG­7实例入门 5. 那些优雅的数据结构(1) : BloomFilter——大规模数据 处理利器 6. 特征选择常用算法综述
最新评论
1. Re:大白话解析模拟退火 算法 从POJ跳过来的~感谢您的分 享
­­chrischeng 2. Re:那些优雅的数据结构 (1) : BloomFilter——大规 模数据处理利器 你好,请问一下表1D1 D2 D3 M11 2 3 1002 3 1 503 2 1 80表2d1 d2 d3 m1 flag2 3 1 60 U1 2 3100 D4 3 4 30 I 我......
问题5:
答案:1,3,9,27
分析:
第5个问题就是所谓“德•梅齐里亚克的砝码问题”(The Weight Problem of Bachet de Meziriac) 。
这里涉及到所谓“平衡三进制”的问题。平衡三进制,也叫对 称三进制,是一种以3为基数,各个三进制位权重为3^0, 3^1,3^2…….,3^n ,以 -1,0,1为基本数码的三进制计 数体系。n位三进制数表示的范围是 -((3^n) ­1)/2 ~ ((3^n) ­1)/2 。
将12个小球按编号为3进制的(000)至(102),如下: 000 001 002 010 011 012 020 021 022 100 101 102
为了方便下面的讨论,先假设异常小球的编号是XYZ,那我 们的目标就转化为如何称3次来确定X,Y,Z的值。我们找出异样小 球的思路就是,通过称量来不断的缩小范围,最终推理出异常小
>
日一 二 三四五六
28 29 30 1 2 3 4 5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1
23 4 5678
搜索
2. 有16种溶液,其中有且只有一种是有毒的,这种有毒的溶液 与另一种试剂A混合会变色,而其他无毒溶液与A混合不会变色。 已知一次实验需要1小时,由于一次混合反应需要使用1个试管, 问最少使用多少个试管可以在1小时内识别出有毒溶液?
问题4:
答案与分析:
问题4算是问题3的升级版本吧。 如果知道异样小球比其他小球轻或重,那么就好办了,只要 将12个小球分为4,4,4三堆,称3次是可以找到异样小球的,方法 很简单,就啰嗦了。
但是题目说明不知道异样小球究竟是偏轻还是偏重,上面的 方法就不灵了。一种可行的解法如下:
假设异样小球比正常小球要重,从12个中抽取N个小球出 来,包含异常小球的组合总是比不包含异常小球的组合要重。
6. 将区间 [0,1] 平均分为3段,挖去中间的一段,即去掉 ( 1/3 , 2/3 ) ,然后将剩下的两段同样各自挖去中间1/3 。这样无限 挖下去,问区间中[ 0 , 1 ] 中是否有永远不被挖掉的点?如果 有,这些点的坐标有什么规律?
7. 遗传算法入门 8. 二进制与三进制的那些趣 题 9. 色彩学基础知识 10. 大白话解析模拟退火算 法
总结一下,上面1,2题利用二进制原理解决,而3,4,5题 利用三进制原理解决。总的来说原理是一样的,核心的区别在于 二进制数位有2种状态,三进制数位有3种状态。 (废话!)
问题6:
答案:康拓三分集
分析:
首先用三进制数表示[0,1]间的小数,并将其画在数轴上。你 会发现第一次其实是挖掉了所有小数点后第1位为1的所有数,而 第二次则是挖掉了小数点后第2位为1的所有数,按此类推。
­­apchy09 3. Re:遗传算法入门 写的太好了,通俗易懂
­­猛龙过蒋 4. Re:大白话解析模拟退火 算法 真心感谢额,好文
­­XU東—昇
wk.baidu.com
答案在下面,请先思考然后看答案!
解答:
发现错误或有更好解决方法的可留言告诉我,谢谢。第1、2 题涉及二进制思想,大家平常都比较熟悉了,算是热热身。后面 4题需要用到三进制和所谓的“平衡三进制”思想来解决,挺有趣 的。
问题3:
答案与分析:
第3个问题可以使用三进制的原理来解决。先说说三进制, 与二进制类似,三进制各个数位的权重分别为3^0 ,3^1 , 3^2 ,……., 3^n 。三进制用0 , 1 , 2 这3个数码表示数 ,因此每个三进制数位有3种状态。
对于每一次天平称量的结果有3种:左边较重、右边较重、平 衡。我们可以将左边较重编号为1,右边较重编号为2,平衡编号 为0 。
实质上就是挖去了三进制表示法中所有含有数位1的数。因 此剩余的数就是[0,1]区间上三进制表示法中不包含1的所有数的 集合。这个集合就是所谓的康拓三分集。
有趣的是:康拓三分集中元素的个数实质上是跟区间[0,1]上 的实数个数是一样多的(严格的表述应该是“等势”)!
球的编号。 注意到编号中最低位为0,为1和2的各有4个。因此将最低位 为1与2的分别放在天平两边称一次。根据第一次称的结果分为下 面两种情况: (1)若第一次称量时天平不平衡,则异样小球必然在编号最低 位为1或2的小球中,即Z等于1或2 。 最低位为1或2的编号有下面8个:
001 002 011 012 021 022 101 102 于是我们就将搜索范围缩小到上面的8个小球中了。 注意到在这8个数中第二位为1和2的各有2个。就是下面这4 个: 011 012 021 022 因此第二次称量时,将上面列出的五个数中第二位为1和2的 分别放天平两边。 根据第二次称量的结果,可分为下面两种情况: <1>第二次称量时天平不平衡,那么我们可以肯定异样小球 必然在第二位编号为1或2的小球中,Y等于1或2 。 不妨假设小球 011 + 012 > 021 + 022 假设第一次称量结果是最低位为1的小球比最低位是2的 要重,那么我们可以肯定011号小球偏重或022号小球偏轻。 那么第三次称量只需将011号或022号中任意一个与其 他任意一个小球称量,若平衡则是正常小球,否则就是异常小球
4. 有12个颜色大小一模一样的小球,已知其中只有一只重量有 些微差别(提示:但并不知到底是重还是轻哦),现在用一个没 有砝码的天平,最多称三次把这个特殊的小球找出来。
5. 小莫有一个40磅的砝码,一次失手掉到地上,结果摔成了4 块,心痛啊。但他却意外的发现这4块砝码碎片可以在天平上称 1~40间的任意整数重量了,问4块的重量各是多少?
首先,将16种溶液编号为0到15 ,编号的二进制形式表示如 下:
0001 0010 0011 0100
5. Re:神经网络编程入门 神经网络源码:
­­cofftech
0101 0110 0111
1000
1001
1010
1011
1100
1101
1110
1111
然后,取4个试管,第一个试管加入编号二进制形式中第一 位(指最低位)是1的溶液,第二个试管加入编号第二位是1的溶 液,其他2个试管分别加入编号第3,4位为1 的溶液。然后再将试 剂A加入4个试管中,看那些试管发生了反应,就可以知道有毒溶 液的编号了。例如:第1、2、4号试管内发生了反应,则我们知 道是第7号溶液是有毒的。原因是7的二进制编码是1011,因此7 号溶液是唯一加入了1、2、4号试管,而没有加入3号试管的溶 液。
随笔分类(19)
Linux相关(5) 多媒体·信号处理(2) 机器学习(5) 数据结构·算法(4) 数学·趣题(3)
随笔档案(19)
2011年3月 (3) 2011年1月 (3) 2010年12月 (4) 2010年11月 (2) 2010年8月 (1) 2010年7月 (2) 2010年6月 (1) 2010年5月 (1) 2009年8月 (1) 2009年5月 (1)
相关文档
最新文档