您现在的位置是:首页 >

怎样把250只苹果巧装在8只篮子里

火烧 2016-12-15 07:36:00 1041
问题是这样的:假设每只篮子的容量都足够大,可以让你装入250只以内的任意数量的苹果,怎样把250只苹果巧装在8只篮子里,然后不管你要拿多少只苹果,都不需要一只只地数,只要拿几只篮子就可以了。 怎样才能做到呢?仔细思考一下,这个问题其实就是:如何把250分

问题是这样的:假设每只篮子的容量都足够大,可以让你装入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只苹果,与我们上面的答案相同。

关键词:十进位制 二进位制

永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码