Python兔子毒药问题实例分析


Posted in Python onMarch 05, 2015

本文实例分析了Python兔子毒药问题。分享给大家供大家参考。具体分析如下:

问题大致是这样的:1000瓶无色无味的液体,其中一瓶为毒药,其它皆为清水,毒药只取一滴与清水混合为一瓶也可以毒死兔子。现在有10只兔子,当兔子喝下毒药两个小时后死去,请设计一种方案,能够在24小时内找到这瓶毒药。
................2分钟后
前面的问题你一定想清楚了,那么略改动一下:1000瓶无色无味的液体,其中一瓶为毒药,其它皆为清水,毒药只取一滴与清水混合为一瓶也可以毒死兔子。现在有10只兔子,当兔子喝下毒药20个小时后死去,请设计一种方案,能够在24小时内找到这瓶毒药。
................2分钟后
有多种方法,比如我每隔5分钟给兔子喝一次100瓶液体混合在一起的东西,根据兔子死去的先后顺序,就可以判断是那一瓶了。

有没有更好的办法呢,我这里仅仅提供一种时间最优的方法,也就是在20个小时找到这瓶毒药。当然也可以有死的兔子最少,在死去兔子和时间找到一个最佳折中点的优化问题。
方法如下:
给10只兔子编号1-10,每只兔子代表一个数,列表如下:
编号    1    2    3    4    5    ...    10
数字    1    2    4    8    16    ...    512

瓶子也有编号,依次为1-1000。    呵呵,聪明的你应该知道我要怎么做了吧,不过我还是要说下去,并写python代码来实现。
我希望是当编号为Y1,Y2,Y3...的兔子死去时,可以推导出编号为X瓶子为毒药。比如编号为1,2,4的兔子死去,那就得知 兔子对应的数字 为1+2+8=11,就是编号为11的瓶子是毒药。比如编号为1,4,10的兔子死去,那就得知 兔子对应的数字 为1+8+512=521,就是编号为521的瓶子是毒药。
现在的问题就是要知道编号不同的每只兔子要喝哪几瓶液体。

Python代码如下:

def main():
    """
  baselist是兔子编号从1-10对应的数字,
  result是最终每只兔子要喝的液体
    """
  baselist=[1,2,4,8,16,32,64,128,256,512]
  result=[[],[],[],[],[],[],[],[],[],[]]
  for water in range(1,1001):
    watertmp=water
    for i in range(9,-1,-1):
      if (watertmp-baselist[i])>=0:
        watertmp -= baselist[i]
        result[i].append(water)
  for i in range(1,11):
    print "The Num %d rabit need drink the next liquid " % i+1,result[i]
  pass
if __name__=="__main__":
  main()

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
详解Python命令行解析工具Argparse
Apr 20 Python
shelve  用来持久化任意的Python对象实例代码
Oct 12 Python
Python实现将一个大文件按段落分隔为多个小文件的简单操作方法
Apr 17 Python
解决Pycharm运行时找不到文件的问题
Oct 29 Python
pytorch 转换矩阵的维数位置方法
Dec 08 Python
在linux系统下安装python librtmp包的实现方法
Jul 22 Python
Python定义函数时参数有默认值问题解决
Dec 19 Python
django-利用session机制实现唯一登录的例子
Mar 16 Python
pycharm导入源码的具体步骤
Aug 04 Python
使用Django的JsonResponse返回数据的实现
Jan 15 Python
Python Numpy之linspace用法说明
Apr 17 Python
python爬虫之利用selenium模块自动登录CSDN
Apr 22 Python
Python获取服务器信息的最简单实现方法
Mar 05 #Python
Python实现简单的可逆加密程序实例
Mar 05 #Python
Python装饰器的函数式编程详解
Feb 27 #Python
python分析nignx访问日志脚本分享
Feb 26 #Python
python分析apache访问日志脚本分享
Feb 26 #Python
Python构造函数及解构函数介绍
Feb 26 #Python
python中的__slots__使用示例
Feb 26 #Python
You might like
基于python发送邮件的乱码问题的解决办法
2013/04/25 PHP
CodeIgniter CLI模式简介
2014/06/17 PHP
thinkPHP5.0框架自动加载机制分析
2017/03/18 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
jQuery初学:find()方法及children方法的区别分析
2011/01/31 Javascript
SOSO地图API使用(一)在地图上画圆实现思路与代码
2013/01/15 Javascript
jQuery自定义数值抽奖活动代码
2016/06/11 Javascript
基于AngularJS实现iOS8自带的计算器
2016/09/12 Javascript
利用JS判断鼠标移入元素的方向
2016/12/11 Javascript
从零开始做一个pagination分页组件
2017/03/15 Javascript
详解在Angularjs中ui-sref和$state.go如何传递参数
2017/04/24 Javascript
详解webpack中的hash、chunkhash、contenthash区别
2018/01/05 Javascript
vue项目中jsonp跨域获取qq音乐首页推荐问题
2018/05/30 Javascript
浅谈微信页面入口文件被缓存解决方案
2018/09/29 Javascript
微信小程序左滑删除实现代码实例
2019/09/16 Javascript
js消除图片小游戏代码
2019/12/11 Javascript
Python sys.argv用法实例
2015/05/28 Python
使用Python编写简单的端口扫描器的实例分享
2015/12/18 Python
浅析Python3爬虫登录模拟
2018/02/07 Python
Django单元测试工具test client使用详解
2019/08/02 Python
Python3 虚拟开发环境搭建过程(图文详解)
2020/01/06 Python
利用setuptools打包python程序的方法步骤
2020/01/18 Python
Python+Appium实现自动化测试的使用步骤
2020/03/24 Python
python opencv 实现读取、显示、写入图像的方法
2020/06/08 Python
CSS3实现全景图特效示例代码
2018/03/26 HTML / CSS
使用CSS变量实现炫酷惊人的悬浮效果
2019/04/26 HTML / CSS
福克斯租车:Fox Rent A Car
2017/04/13 全球购物
美国最流行的男士时尚网站:Touch of Modern
2018/02/05 全球购物
服务中心夜班服务员岗位职责
2013/11/27 职场文书
业务内勤岗位职责
2014/04/30 职场文书
环卫工人先进事迹材料
2014/06/02 职场文书
同志主要表现材料
2014/08/21 职场文书
村主任“四风”问题个人整改措施
2014/10/04 职场文书
通知函的格式
2015/04/27 职场文书
繁星春水读书笔记
2015/06/30 职场文书
SQL IDENTITY_INSERT作用案例详解
2021/08/23 MySQL