python斐波那契兔子问题_Python兔子毒药问题实例分析
本文实例分析了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兔子毒药问题实例分析相关推荐
- python斐波那契数列前20项_Python每日一练之实现斐波那契数列
概述 今天主要分享下怎么用Python实现斐波那契数列,大家有空可以玩一下~ 需求 用Python脚本实现斐波那契数列. 思路 斐波那契数列,也称兔子数列,是指1,1,2,3,5,8,13,21,34 ...
- 递归函数输出斐波那契数列-黄金分割数列-兔子数列(python)
递归函数输出斐波那契数列-黄金分割数列-兔子数列(python) 斐波那契数列介绍 数学家莱昂纳 多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为"兔 ...
- python斐波那契数列前20项_兔子繁殖问题带来的智商碾压:斐波那契数列趣谈
本文来自公众号:超级数学建模 微信号 :supermodeling 原文标题:斐波那契数列趣谈 via 善科 by BB 一般认为斐波那契数列的提出是基于兔子的繁殖问题:如果一开始有一对兔子,它们每月 ...
- python斐波那契递归_Python递归斐波那契示例
python斐波那契递归 Good day, learners! In this tutorial we are going to learn about Python Recursion and u ...
- python斐波那契数列for循环_Python编程题、for循环和列表推导式的用法题(阿凡提与国王比赛下棋、 斐波那契数列等)...
# -*- coding: utf-8 -*- """ Spyder Editor This is a temporary script file. "&quo ...
- python程序题斐波那契数列通项公式,Python斐波那契数列应用,编程练习题实例六...
python斐波那契数列,本文是关于Python编程练习题和答案实例六,斐波那契数列应用的示例.引用百度关于斐波那契数列的介绍,大家先简单来的了解下,什么是斐波那契数列? 斐波那契数列(Fibonac ...
- python斐波那契数列前20项_Python初学者笔记:打印出斐波那契数列的前10项
问题:斐波那契数列(意大利语: Successione di Fibonacci),又称黄金分割数列.费波那西数列.费波拿契数.费氏数列,指的是这样一个数列:0.1.1.2.3.5.8.13.21.- ...
- python做斐波那契数列通项公式_python实现斐波那契数列
斐波那契数列:第0项是0,第1项是第一个1.这个数列从第3项开始,每一项都等于前两项之和.如下: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,3 ...
- python生成斐波那契数列通项公式_Python生成器实现斐波那契数列
比如,斐波那契数列:1,1,2,3,5,8,13,21,34.... 用列表生成式写不出来,但是我们可以用函数把它打印出来: def fib(number): n, a, b = 0, 0, 1 wh ...
- python斐波那契前20递归_算法python实现经典递归问题(汉诺塔, 斐波那契数列,阶乘)...
经典递归 汉诺塔问题 背景故事 传说印度某间寺院有三根柱子,上串64个金盘.寺院里的僧侣依照一个古老的预言,以上述规则移动这些盘子:预言说当这些盘子移动完毕,世界就会灭亡.这个传说叫做梵天寺之塔问题( ...
最新文章
- 一文读懂GoogLeNet神经网络 | CSDN博文精选
- filebeat.yml配置和logstash.conf
- php mysql 非扫描,PHP的中使用非缓冲模式查询数据库的方法
- ArrayList笔记
- Grpc Proto To Nuget Package 插件使用说明
- P4146 序列终结者 平衡树 + lazy维护
- 紫色UI趣味测试微信小程序源码下载包含多种评测
- 算法 - 差分进化(DE)算法
- 计算机如何共享桌面,怎么共享电脑屏幕?
- epub格式电子书编辑器
- 粒子群算法 java_粒子群算法解决TSP问题
- android 实现男女按钮选择
- python xlwt追加_python excel写入及追加写入
- DRM 驱动程序开发(VKMS)
- RHCE-ansible第三次实验,通过ansible自动化部署web服务
- peer channel create解析
- AM335x Linux调试1--MLO中打印寄存器值
- SIM7600CE GNSS应用指南
- 六轴机器人直角坐标系建立_知识篇-六轴机器人坐标
- 【日常实用】git的简单使用
热门文章
- postionfixed固定_详解如何解决position:fixed固定定位偏移问题
- project euler 19: Counting Sundays
- [译]A Gentle Introduction to Functional Javascript part 4
- Qt通过setProperty来达到设置控件的不同样式表
- ECMA5forEach
- 上海辉度 WTH207 COM口
- ie的html缓存问题,解决IE下Ajax请求无效,IE请求缓存问题
- siri早上好捷径分享_如何使Siri更好地了解您
- Jmeter 证书导入
- Jmeter请求授权接口的两种方法