三进制与一道经典的砝码问题

转载 2012年03月28日 14:29:58

 

现在我们普遍使用十进位制进行数学运算,大概是源于我们的祖先喜欢用手指来计数,毕竟数学首先是一种实用的工具。另一种常使用的进位制是二进位制,在计算机运算之中。

日常生活中好像没有三进制的立足之处。1个季度是3个月,应是三进位制,可是我们说1年是4个季度,而不是11个季度。交通信号的红绿黄的三种状态可以表示0、1、2来描述,这似乎与三进制沾上了边,可是最近红绿黄灯多变成了红绿灯,三进制变成了二进制。

虽然在日常生活中少有表现的机会,但是用三进位制就非常容易解决一道关于砝码的经典趣味数学题。

这道砝码问题是巴协(Bachet)给出的:要想在天平上称出1到40磅在内的任何整磅数,问最少需要几个多重的砝码?这里有两种放置砝码的办法:(1)所有砝码只放进天平的一端,(2)砝码可以放进天平的两端。

对于(1),砝码具有两种状态,不放或者放。记不放为0,放为1,这个问题可以使用二进制来解决。二进制的砝码重量设置为1、2、4、8、16、32。在1到1+2+4+8+16+32也就是63之内的任何数量都可以用1、2、4、8、16、32中的某几个数相加得到。所以问题(1)的砝码数是6个,每个砝码的重量设置为1、2、4、8、16、32磅。

对于(2),砝码具有三种状态,不放、放在天平左端、放在天平右端。记不放为0,放左边为1,放右边为-1,这个问题可以使用三进制来解决。在三进制中,砝码的重量设置为1、3、9、27.。在1到1+3+9+27也就是40之内的任何数量都可以用1、3、9、27中的某几个数相加或者相减获得。

我们来看这几个砝码是如何称量1到40的:

 

1=1;2=3-1;3=3 ;4=3+1;5=9-3-1 ;6=9-3 ;    

7=9-3+1;8=9-1 ;9=9  ;10=9+1 ;11=9+3-1

……

35=27+9-1; 36=27+9;37=27+9+1

38=27+9+3-1;39=27+9+3;40=27+9+3+1

 

这里,加号意味着天平左边放置砝码,减号意味着天平右边放置砝码(与被称重的物体放在同一端)。

如果我们增加两个砝码81磅和243磅,用6个砝码可以就称重1到364磅的重量。如果砝码继续按3的幂次增加重量,则称重的范围越来越大。用重量为1、3^2、3^3、……、3^n的n个砝码可以称出从1到(3^n-1)/2的所有重量。

问题是,如果一个被称物体较重,我们该如何在天平两端放置砝码呢?这里涉及到十进制向三进制的计算。像十进制转化为二进制一样,转化方法就是连续的除法运算(这里不打算详细介绍)。

例如,(80)10=(2222)3

等式右边的含义是,80可以用2个1、2个3、2个9、2个27相加而成。

在天平称重中,我们要的是最少的砝码数,我们可以把2变成(10-1)3(简记为-1),也就是说,一个大一级的砝码减去一个小一级的砝码。大砝码放在天平左端,小砝码和被称重物一同放在天平右端。

因为,(2222)3=(1000-1)         ,该式的含义就是用2个1、2个3、2个9、2个27加成的得数等于用1个81减去1的得数。

所以,要称重80磅的物体,需要在天平左边放置1个81磅的砝码,在天平右边放置一个1磅的砝码。

又例如,如果我们用最少的砝码称出了一个331磅的东西,我们究竟用了哪几个砝码呢?

因为(331)10=(110021)3=(1101-11)3

所以,要称重331磅的物体,需要在天平左边放置1个243磅的砝码、1个81磅的砝码、1个9磅的砝码、1个1磅的砝码,在天平右边放置一个3磅的砝码。

因为每一次称量能区别3个球,将12表示为三进制。

在文章的最后,我们把巴协(Bachet)的砝码问题稍稍扩大一些:要想在天平上称出1到500磅在内的任何整磅数,问最少需要几个多重的砝码?这里有两种放置砝码的办法:(1)所有砝码只放进天平的一端,(2)砝码可以放进天平的两端。

举报

相关文章推荐

三进制与一道经典的砝码问题

转自:http://blog.sina.com.cn/s/blog_41482c9f01009an5.html 三进制与一道经典的砝码问题   现在我们普遍使用十进位制进行数学运算,大概...
  • hcwzq
  • hcwzq
  • 2011-09-12 11:19
  • 492

三进制解决天平平衡问题

问题:已知有20个质量分别为1,3,9,27,...3^19的砝码;开始物体放在天平左边的托盘中,通过在左盘和右盘添加砝码使天平达到平衡。要求左边不放砝码时,输出empty,否则输入两盘所加的砝码。例...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

Travelling HDU - 3001(三进制状态压缩) 题解

Travelling HDU - 3001(三进制状态压缩) 题解

hdu3001Travelling【三进制TSP】

Problem Description After coding so many days,Mr Acmer wants to have a good rest.So travelling is t...

poj1038Bugs Integrated, Inc.【三进制状态压缩】

本来是看这个题是课件上推荐的题当中AC率最高的,结果还看了两天才看明白T^T,三进制状态压缩,什么鬼东西,一个DP居然还要100行代码,太不像话了== 参考博客:http://www.cnblogs...

POJ 1702 Eva's Balance 三进制

三进制  /*Eva's Balance Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 3155 Accepted: ...

hdu 3001(状压dp+三进制)

不管是几进制,都用的是逻辑上概念,(上次六进制是用来转化多维数据)核心思路是TSP。这里的预处理比较巧妙,计算出了每种状态下各个位上的模vis[][]。 TSP:dp[i][j] 在i状态下,以j结...

hdu3001(状态压缩dp,三进制!)

Travelling Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total...

CodeM美团点评编程大赛初赛B轮 B.送外卖2【三进制状压Dp】

[编程题]送外卖2 热度指数:107时间限制:1秒空间限制:32768K算法知识视频讲解 美团外卖日订单数已经超过1200万,实时调度系统是背后的重要技术支撑,其中涉及很多复杂的算...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)