python 苹果放入10个篮子 任意数量_250个苹果放在8个篮子里假设每个篮子足够大可以装入250个苹果以内任何数量的苹果如何将这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=225.

为什么要这样来分解数字呢?这里我们要介绍一下计数制度的原理.

我们通常所用的计数制度是是十进位制.在十进制中,所用的数码一共有10个,它们是0、1、2、┅、9;所用的位率是逢十进一的.用这些数码和位率,同样也可以写出任何一个自然数.

而计算机编码所采用的是二进位制.在二位进制中,所用的数码一共有两个:0和1;用二进位制是逢二进一的.用这些数码和位率,同样也可以写出任何一个自然数.

我们来看看十进位制和二位进制只之间的换算.例如55,是32、16、4、2、1的和,用二进位制表示就是110 111.而110 111换算成十进制等于

1× +1× +1× +0× +1× +1×

=1+2+4+16+32=55.

现在我们容易理解上面问题的答案了,分解的数字分别为 、 、 、 、 … ,因为这样分解以后,每一个篮子也就相当于二进位制的每一位,它只有两种选择:1和0,也就是说只这个篮子是“要拿”还是“不要拿”.而篮子的编号也正是二进位制数的位数,例如55就等于二进位制的110 111;也就是如果拿第1、2、3、5、6只篮子,就正好拿了55只苹果,与我们上面的答案相同.

作业帮用户

2017-09-23

举报

icon_report_d51b383.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值