怎样把250只苹果巧装在8只篮子里
问题是这样的:假设每只篮子的容量都足够大,可以让你装入250只以内的任意数量的苹果,怎样把250只苹果巧装在8只篮子里,然后不管你要拿多少只苹果,都不需要一只只地数,只要拿几只篮子就可以了。
![]() |
怎样才能做到呢?仔细思考一下,这个问题其实就是:如何把250分解成8个数的和,使得1到250之间的每个自然数都可以用这8个数中若干个数的和来表示。
我们首先把8只篮子进行编号①、②、③、…、⑧,然后依次装人1、2、4、8、16、32、64、123只苹果,这样250只苹果刚好全部装进去。现在,不论我们要拿多少只苹果,只要计算一下,然后拿几只篮子就可以了。例如55=32+16+4+2+1,因此只要拿走①②③⑤⑥号篮子,就正好是55只苹果。不信的话,你可以试试看,1到250之间所有的数字,都可以不重复地由上面8个数字相加得到。
答案还不止这一个呢!例如,如果⑦号篮子改成装62只,⑧号装125只,其余的不变,这也是一个正确的答案。
但是,如果苹果的数目是255只,那么答案便只有一个:1+2+4+8+16+32+64+128=255。
为什么要这样来分解数字呢?这里我们要介绍一下记数制度的原理。
我们通常所用的记数制度是十进位制。在十进位制中,所用的数码一共有10个,它们是0、1、2、…、9;所用的位率是逢十进一的。用这些数码和位率,我们可以写出任何一个自然数。
而计算机编码所采用的是二进位制。在二进位制中,所用的数码一共只有两个:0和1;所用的位率是逢二进一的。用这些数码和位率,同样也可以写出任何一个自然数。
我们来看看十进位制和二进位制之间的换算。例如55,是32、16、4、2、1的和,用二进位制表示就是110111。而110111换算成十进位制等于
1×20+1×21+1×22+0×23+1×24+1×25 = 1+2+4+16+32 = 55。
现在我们容易理解上面问题的答案了,分解的数字分别为20、21、22、23、24、…,因为这样分解以后,每一个篮子也就相当于二进位制的每一位,它只有两种选择:1和0,也就是说这个篮子是“要拿”还是“不要拿”。而篮子的编号也正是二进位制数从右向左数的位数,例如55就等于二进位制的110111,也就是如果拿第1、2、3、5、6只篮子,就正好拿了55只苹果,与我们上面的答案相同。
关键词:十进位制 二进位制
- 上一篇
为什么国王无法把棋盘里的米赏给术士V5
有这么一个古老的传说:有个术士,为国王发明了一种非常好玩的棋,国王要重赏他,让术士自己提出要求。术士说,在棋盘的第1格放上1粒米,在第2格放上2粒米,在第3格放上4粒米,依次在后面的格子里都放进比前面格子多1倍的米,64个格子都放满,就是他所要的赏赐。国王
- 下一篇
在81个零件中要找出一个废品,至少要称几次!
现在有81个零件,其中有一个因为原材料内部有砂眼,是个废品,需要把它找出来。这个废品虽然从表面上看不出来,但由于内部有空洞,所以比别的零件要轻。因此,我们可以采取称量的方法。那么怎样使称量的次数最少呢? 一般的方法应该是,在天平的两边各放一个零件,如果平衡