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实现的百度贴吧网络爬虫实例
Apr 17 Python
django rest framework之请求与响应(详解)
Nov 06 Python
Python即时网络爬虫项目启动说明详解
Feb 23 Python
怎么使用pipenv管理你的python项目
Mar 12 Python
python 执行shell命令并将结果保存的实例
May 11 Python
elasticsearch python 查询的两种方法
Aug 04 Python
python中web框架的自定义创建
Sep 08 Python
python抓取多种类型的页面方法实例
Nov 20 Python
Python迭代器模块itertools使用原理解析
Dec 11 Python
tensorflow自定义激活函数实例
Feb 04 Python
Pandas时间序列:时期(period)及其算术运算详解
Feb 25 Python
python基于socket模拟实现ssh远程执行命令
Dec 05 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实现多条件查询实例代码
2010/07/17 PHP
Linux环境下搭建php开发环境的操作步骤
2013/06/17 PHP
Laravel 5框架学习之向视图传送数据
2015/04/08 PHP
PHP定时执行任务的3种方法详解
2015/12/21 PHP
微信开发之网页授权获取用户信息(二)
2016/01/08 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
PHP学习记录之常用的魔术常量详解
2019/12/12 PHP
任意位置显示html菜单
2007/02/01 Javascript
jQuery获取Select选择的Text和Value(详细汇总)
2013/01/25 Javascript
js实现带圆角的两级导航菜单效果代码
2015/08/24 Javascript
Bootstrap每天必学之警告框插件
2016/04/26 Javascript
AngularJS基础 ng-cloak 指令简单示例
2016/08/01 Javascript
jQuery实现点击查看大图并以弹框的形式居中
2016/08/08 Javascript
a标签置灰不可点击的实现方法
2017/02/06 Javascript
vue项目动态设置页面title及是否缓存页面的问题
2018/11/08 Javascript
video.js 一个页面同时播放多个视频的实例代码
2018/11/27 Javascript
es6数据变更同步到视图层的方法
2019/03/04 Javascript
了解javascript中的Dom操作
2019/05/27 Javascript
在JavaScript中如何访问暂未存在的嵌套对象
2019/06/18 Javascript
JavaScript闭包原理与用法学习笔记
2020/05/29 Javascript
python计算最小优先级队列代码分享
2013/12/18 Python
用python读写excel的方法
2014/11/18 Python
python获取图片颜色信息的方法
2015/03/18 Python
Python基于动态规划算法计算单词距离
2015/07/25 Python
python函数的5种参数详解
2017/02/24 Python
Python自动化运维之IP地址处理模块详解
2017/12/10 Python
python的socket编程入门
2018/01/29 Python
python django框架中使用FastDFS分布式文件系统的安装方法
2019/06/10 Python
python3 requests库文件上传与下载实现详解
2019/08/22 Python
Python urllib2运行过程原理解析
2020/06/04 Python
django ObjectDoesNotExist 和 DoesNotExist的用法
2020/07/09 Python
日本最大化妆品和美容产品的综合口碑网站:cosme shopping
2019/08/28 全球购物
信息部岗位职责
2013/11/12 职场文书
中秋节国旗下演讲稿
2014/09/13 职场文书
九年级英语教学反思
2016/02/15 职场文书
2019年消防宣传标语集锦
2019/11/21 职场文书