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监控网卡流量并使用graphite绘图的示例
Apr 27 Python
bat和python批量重命名文件的实现代码
May 19 Python
python3.5实现socket通讯示例(TCP)
Feb 07 Python
python安装教程 Pycharm安装详细教程
May 02 Python
详解Python进程间通信之命名管道
Aug 28 Python
Python自定义装饰器原理与用法实例分析
Jul 16 Python
Python魔法方法 容器部方法详解
Jan 02 Python
Python 实现日志同时输出到屏幕和文件
Feb 19 Python
屏蔽Django admin界面添加按钮的操作
Mar 11 Python
Python3自动生成MySQL数据字典的markdown文本的实现
May 07 Python
Python接口自动化测试框架运行原理及流程
Nov 30 Python
python Tkinter的简单入门教程
Apr 11 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安全编程之加密功能
2006/10/09 PHP
提高define性能的php扩展hidef的安装和使用
2011/06/14 PHP
PHP判断文件是否被引入的方法get_included_files用法示例
2016/11/29 PHP
php json中文编码为null的解决办法
2016/12/14 PHP
Prototype1.5 rc2版指南最后一篇之Position
2007/01/10 Javascript
JS解决ie6下png透明的方法实例
2013/08/02 Javascript
JS实现切换标签页效果实例代码
2013/11/01 Javascript
基于zepto.js实现仿手机QQ空间的大图查看组件ImageView.js详解
2015/03/05 Javascript
TypeError document.getElementById(...) is null错误原因
2015/05/18 Javascript
scroll事件实现监控滚动条并分页显示(zepto.js)
2016/12/18 Javascript
Angular的$http与$location
2016/12/26 Javascript
jQuery操作json常用方法示例
2017/01/04 Javascript
Web纯前端“旭日图”实现元素周期表
2017/03/10 Javascript
three.js加载obj模型的实例代码
2017/11/10 Javascript
jQuery实现带右侧索引功能的通讯录示例【附源码下载】
2018/04/17 jQuery
Vue.set()动态的新增与修改数据,触发视图更新的方法
2018/09/15 Javascript
从零到一详聊创建Vue工程及遇到的常见问题
2019/04/25 Javascript
js设置默认时间跨度过程详解
2019/07/17 Javascript
react用Redux中央仓库实现一个todolist
2019/09/29 Javascript
[01:07:20]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第二场 2月2日
2021/03/11 DOTA
python3+PyQt5实现拖放功能
2018/04/24 Python
基于python实现百度翻译功能
2019/05/09 Python
Python自动抢红包教程详解
2019/06/11 Python
python psutil监控进程实例
2019/12/17 Python
pycharm配置QtDesigner的超详细方法
2021/01/25 Python
正隆泰信息技术有限公司上机题
2012/06/14 面试题
小学新学期教师寄语
2014/01/18 职场文书
打造高效课堂实施方案
2014/03/22 职场文书
元宵晚会主持词
2014/03/25 职场文书
心理健康教育主题班会
2015/08/13 职场文书
2019思想汇报范文
2019/05/21 职场文书
新学期小学班主任工作计划
2019/06/21 职场文书
扩展多台相同的Web服务器
2021/04/01 Servers
golang http使用踩过的坑与填坑指南
2021/04/27 Golang
MySQL不使用order by实现排名的三种思路总结
2021/06/02 MySQL
Python pandas求方差和标准差的方法实例
2021/08/04 Python