8瓶水和3只小老鼠的故事(python解决)思路

简介: 这是一个悲伤的故事,一天有人往8个杯子中的一个投了毒,已经知道毒药7天左右发作,现有3只小白鼠,有一个星期的时间,要得到哪一个杯子里面有毒

大家好,这里是三岁,遇到了一个那难题,三岁渣渣做算法题,思路已有过程还在考虑,头一直秃


这是一个悲伤的故事,一天有人往8个杯子中的一个投了毒,已经知道毒药7天左右发作,现有3只小白鼠,有一个星期的时间,要得到哪一个杯子里面有毒


这题目真的和题目一有毒。

百度到了一个好结果:

把3只老鼠变成肉泥,然后等分成8份放进瓶子里,7天后查看有没有长蛆,没有的那个就是有毒的。


这个答案也是真的牛,只想问一句,你是秀儿吗?


思路



可以逐个排序


瓶子 老鼠
1号 第一只
2号 第二只
3号 第三只
4号 第一、二只
5号 第一、三只
6号 第二、三只
7号 第一、 二、三只
8号 都不吃


这样子不同的老鼠giao了就代表不同的瓶子有毒,如果都没有giao那么8号有毒

emmm好有道理啊!

怎么样去表达?

秃!!!


思路2



上面的有明显问题就是这个顺序比例不好把控,用计算机语言难以表达,而且容易错乱。


有没有什么好一点的办法呢?

那么肯定是有的,就是采用二进制的办法


疑惑.jpg

不行,三岁老规矩上图!


20200613144204947.jpg


3只老鼠一只表示一位

第一只试第一位是1的也就是 2,4,6,8

第二只试第二位是1的也就是 3,4,7,8

第三只试第三位是1的也就是 5,6,7,8


只要有那只giao 了就代表响应位数为1的十进制值加一

比如第一只和第三只giao了,那么就相当于第三位和第一位为1

就是: 101(二进制) = 5(十进制)+1

第6瓶是毒药


原理基本上就是终上所述,至于怎么实现,emmm三岁秃头努力中,如有结果会把链接放在下面,如有大佬有思路想法,欢迎打扰。谢谢大家的关注!!!

目录
相关文章
|
4月前
|
Java Python
python代码大全简单图解
python代码大全简单图解
|
存储 Python
【python基础知识】20.“午饭吃什么”的python实现(产品思维-实操篇)
【python基础知识】20.“午饭吃什么”的python实现(产品思维-实操篇)
108 0
【python基础知识】20.“午饭吃什么”的python实现(产品思维-实操篇)
|
2天前
|
Python
用python实现背单词的功能(python3经典编程案例)
这篇文章介绍了如何使用Python和Tkinter库实现一个背单词的桌面应用,通过读取文本文件中的单词列表,并在GUI界面中随机显示单词及其音标和解释。
20 10
|
4月前
|
Python
Python十道基础编程题
Python十道基础编程题
62 0
|
机器学习/深度学习 算法 数据安全/隐私保护
两万多字诠释python经典基础算法之100题【内含思路、程序和答案】【python小白必备】
本文为最最基础的python基础算法题目、思路和答案,适合python初学者使用,可以当作python入门算法工具书,虽然不具有高深的算法,但是都是企业级算法用的频率最多的,这也是学好高级算法的必经之路。希望收藏、关注、点赞哦。
|
机器学习/深度学习 程序员 编译器
面向初学者的 20 大 Python 面试问题和答案
面向初学者的 20 大 Python 面试问题和答案
349 0
|
算法 Python
Python | 关于枚举法的奥秘
Python | 关于枚举法的奥秘
79 0
|
Java Python
python/测试/测开-刷题第3天
python/测试/测开-刷题第3天
python/测试/测开-刷题第2天
python/测试/测开-刷题第2天
python/测试/测开-刷题第4天
python/测试/测开-刷题第4天