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深入学习之对象的属性
Aug 31 Python
使用Python来编写HTTP服务器的超级指南
Feb 18 Python
在windows系统中实现python3安装lxml
Mar 23 Python
速记Python布尔值
Nov 09 Python
使用python实现链表操作
Jan 26 Python
Python处理菜单消息操作示例【基于win32ui模块】
May 09 Python
详解python pandas 分组统计的方法
Jul 30 Python
Python对Excel按列值筛选并拆分表格到多个文件的代码
Nov 05 Python
把vgg-face.mat权重迁移到pytorch模型示例
Dec 27 Python
Python中if有多个条件处理方法
Feb 26 Python
python利用 keyboard 库记录键盘事件
Oct 16 Python
python爬虫中采集中遇到的问题整理
Nov 27 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
PHP执行速率优化技巧小结
2008/03/15 PHP
php 文本文件的读取效率
2012/02/10 PHP
Yii调试查看执行SQL语句的方法
2016/07/15 PHP
jquery解决图片路径不存在执行替换路径
2013/02/06 Javascript
php中给js数组赋值方法
2014/03/10 Javascript
动态加载iframe时get请求传递中文参数乱码解决方法
2014/05/07 Javascript
禁止按回车键提交表单的方法
2015/06/11 Javascript
JS中产生标识符方式的演变
2015/06/12 Javascript
jQuery右下角旋转环状菜单特效代码
2015/08/10 Javascript
JQuery实现图片轮播效果
2015/09/15 Javascript
通过node-mysql搭建Windows+Node.js+MySQL环境的教程
2016/03/01 Javascript
JavaScript中this的四个绑定规则总结
2016/09/26 Javascript
在js中实现邮箱格式的验证方法(推荐)
2016/10/24 Javascript
vue表单绑定实现多选框和下拉列表的实例
2017/08/12 Javascript
JS使用for in有序获取对象数据
2020/05/19 Javascript
详解vue v-model
2020/08/31 Javascript
[01:02:54]完美世界DOTA2联赛PWL S2 FTD vs GXR 第一场 11.22
2020/11/26 DOTA
Python可视化mhd格式和raw格式的医学图像并保存的方法
2019/01/24 Python
python判断文件是否存在,不存在就创建一个的实例
2019/02/18 Python
对Python 简单串口收发GUI界面的实例详解
2019/06/12 Python
解决python中使用PYQT时中文乱码问题
2019/06/17 Python
python实现日志按天分割
2019/07/22 Python
python wxpython 实现界面跳转功能
2019/12/17 Python
Django ValuesQuerySet转json方式
2020/03/16 Python
Python装饰器如何实现修复过程解析
2020/09/05 Python
全球最大的户外用品零售商之一:The House
2018/06/12 全球购物
小学生班会演讲稿
2014/01/09 职场文书
机电一体化应届生求职信范文
2014/01/24 职场文书
文秘专业应届生求职信
2014/05/26 职场文书
责任书格式范文
2014/07/28 职场文书
元旦标语大全
2014/10/09 职场文书
社区安置帮教工作总结2015
2015/05/20 职场文书
一年级语文教学随笔
2015/08/14 职场文书
Python Django搭建文件下载服务器的实现
2021/05/10 Python
HTML通过表单实现酒店筛选功能
2021/05/18 HTML / CSS
类和原型的设计模式之复制与委托差异
2022/07/07 Javascript