关于1000桶水,其中一桶有毒,猪喝毒水后会在15分钟内死去,想用一个小时找到这桶毒水,至少需要几头猪?的问题

LeetCode 458. Poor Pigs--智力题「小白鼠试毒」--C++,Python解法 LeetCode题解专栏:LeetCode题解 我做的所有的LeetCode的题目都放在这个专栏里,大部分题目Java和Python的解法都有。 题目地址:Poor Pigs - LeetCode There are 1000 buckets, one and only one of them is poisonous, while the rest are filled with wate... 阅读详情

这是个概率学问题,在计算机中也是个进制问题,我看了网上一些关于这个问题的解答,感觉有的人说的并不清楚,或者感觉有的写解答的人自己都没太搞清楚,回答也不对,只是因为知道答案是5硬往上套.这个问题,首先判断用的是多少进制,这个根据猪在一小时内能有几种状态:

一.0分钟喝水,15分钟死去

二.15分钟活着再喝水,30分钟死去

三.30分钟活着再喝水,45分钟死去

四.45分钟活着再喝水,60分钟死去

五.60分钟还活着

有这五种状态,那么可以判断求解要用五进制,为什么用五进制,因为用五进制可以保证在1个小时结束后,一头猪至少能把一个五进制位置的数字的所有可能都判断掉(0,1,2,3,4),所以每一头猪它代表的不是猪,一个五进制的数字!

所以,至少需要几头猪?

那我们选的猪的数量,至少要保证这个位数的五进制数>1000!如果是4头猪,那么就代表能判定最多4位五进制,最大的4444转成十进制=624,所以答案是五头猪,因为五位五进制,最大的44444的五进制数,转成十进制是3124!

具体操作:我们把这1000头猪编号,按五进制编号,这样有1000个五进制数字.为了方便我们把猪编号1 2 3 4 5,代表五位五进制的五个位数,即某个X X X X X

0-15分钟,我们让1号喝1位都是0的桶的水,但是其他位数不能为0,比如10 ,110,3220...这种,让2号猪喝2号位置为0,其他位置不为0的桶的水....五号猪喝五号位0,其他位置不为0的水.(注意:我们这时并没有把所有的桶的水都喝完,也就是15分钟过去也可能没有猪死去!)

15-30分钟,假如有猪死去,比如一号猪死了,那么能确定这个五进制数的一号位是0,那么其余四头猪再喝水的时候,二号猪就喝2号位是1,1号位是零!其余位置不为1也不为0的水(因为345号位置的带零的数字都已经测过了),三号猪就喝3号位是1,1号位是0,其余位置不为1也不为0的水.4,5号猪以此类推.

假如没有猪死,那一号就喝一号位为1的其余位置不为1也不为0的水,二号位喝二号位为1,其余位置不为1也不为0的水,以此类推

30-45分钟  .....

一个小时后,我们就能确定这个五位数的五进制数五个位置的所有数字是多少了

 

【数学】用信息论去解决「小白鼠试毒」问题 试毒问题非常经典,最早是在本科时候人人上看到的,是最基础的1000个试剂,有一个是有毒的,一点就会死去,而且一个小白鼠只能试一次,问最少几个小白鼠能够找出哪瓶是有毒的。后来陆陆续续又看到了一些关于这方面的题,发现这个本质上相当于信息论中关于信息编码长度的问题。 通用方法是讲试剂中哪瓶是毒品的信息总数表示出来为N,然后再找出小白鼠所能表示的状态数目为M,则需要的小白鼠个数为:K=logNMK =log 阅读详情

相关推荐

Python抓取摄像头图像,进行AI识别(一)

本文介绍了如何用Python获取海康威视摄像头的图像并进行AI识别。主要内容包括:1)准备工作,包括摄像头IP设置和密码重置方法;2)使用Python的Requests库通过ISAPI接口获取实时图像;3)示例代码展示如何保存摄像头图像。整个过程为后续AI图像识别提供了基础,通过简单的Python代码即可实现专业监控设备的图像采集功能。

Hahafantuan的博客 1514

1000桶水,其中一桶有毒,猪喝毒水后会在15分钟内死去,想用一个小时找到这桶毒水,至少需要几头猪?具体该如何实现方法讲解

对于此问题,一个思路是通过对问题分解: 首先一个猪在一个小时内的状态可以分为5种: 一.0分钟喝水,15分钟死去 二.15分钟活着再喝水,30分钟死去 三.30分钟活着再喝水,45分钟死去 四.45分钟活着再喝水,60分钟死去 五.60分钟还活着 对比于一个猪有5个状态,可以考虑状态机以及计算机二进制思想: 一个猪一个小时可以表示5个不同桶,两头猪可以表示5*5=25个不同的桶…… 根据题目总共1000个桶:至少需要多少头猪的话? 根据几个猪可以表达1000这个完整的数的状态: =

soga235的博客 1万+

CCS TMSC6748 报错Error connecting to the target: (Error -600 @ 0x0)

CCS TMSC6748 报错Error connecting to the target:(Error -600@ 0x0)

AS_the_deer1717的博客 6636

最少验毒。

从一个经典问题开始 有1000个瓶子里面装满了水,其中1瓶里面被加入了DY,但是滴入DY的水在外观上看和普通水是一模一样的,也就是说这1000个瓶子是分不清哪瓶是装有DY的,除非把装有DY的水喝进肚子里。现在有一只可怜的猪可以用来实验,将其中一瓶水喂给这只猪喝,如果猪毒发身亡了,说明这瓶水有毒。猪并不需要喝完整瓶水,只需喝到一小口,毒性就会发作,如果水是有毒的话。 由于只有一只猪,所以我们只能一瓶一瓶的去试验,假如毒发的时间是1分钟,那么我们每喂完一瓶水,就等待一分钟,直到猪死亡。值得注意的是,我们只需喂完

weixin_40726207的博客 644

(论文速读)低光照图像增强综述(一)

深度学习在弱光图像增强(LLIE)领域取得显著进展,但仍面临泛化性和应用评估不足的挑战。本研究通过统计分析30多种深度学习方法,揭示了监督学习在性能指标上的优势(如DLL的PSNR达25.67dB)与无监督方法(如Zero-DCE++)在实际任务中的潜力。实验发现,增强后的人脸检测mAP最高可提升14.54%,但视觉质量与机器性能存在差异。研究指出当前主要瓶颈包括极端光照处理能力不足、4K+实时处理困难及评估标准不统一,并提出了自适应增强、扩散模型应用等未来方向。

LJ1147517021的博客 2240

一种基于因果干预的少样本学习的故障诊断模型

本文提出CIRNet,一种融合元学习与因果干预的少样本故障诊断框架。针对传统方法易学习伪相关特征的问题,CIRNet通过构建结构因果模型,采用类级和特征级双调整策略消除先验知识干扰。实验在多个轴承/齿轮数据集上验证其有效性,在跨组件任务中准确率最高达93.41%,特征可视化显示更好的类可分性。相比现有方法,CIRNet显著提升了模型泛化能力和可解释性。

hasakie的博客 955

“找毒水” 算法题解法与思考

刚刚运用了2进制,我们想当然可以想到,猪喝两次水,那就用3进制解决。3进制每位有0,1,2三个取值,对应到猪,就是没死,死了一次,死了两次,问题变成了如何定义“死两次”,我们可以把猪死亡记为1,第二轮死了猪还是死的,死亡计数加1. 通过调整一下编码和喝水时机,我们就可以用3进制解决这个问题。1000桶水,其中一桶有毒,毒水可以混合,猪喝毒水后会在15分钟内死去,想用15分钟找到这桶毒水,至少需要几头猪?我们总结发现,这其实是一个信息论的问题,一头猪所能提供的信息是它在什么时间死,因此能提供的信息量是-m。

main_h_的博客 1083

【物联网毕设】多模态智能门禁系统设计(STM32+人脸识别+蓝牙联动)

本文详细介绍了基于STM32的多模态智能门禁系统设计,整合了人脸识别、蓝牙联动、RFID和密码等多种开锁方式。文章从硬件选型、电路设计、嵌入式软件编程到手机APP开发,提供了完整的毕设实现方案与调试指南,帮助物联网与嵌入式方向的学生构建一个功能全面、可扩展的智能门禁系统。

rain6的博客 246

一千桶水中找出一桶有毒的水

起因 最近离职了,可以一整天的在技术群里吹水了。 然后在群里看到有人拿题出来,就试着做了一下。 经过 我看到题的第一个想法是每个老鼠喝两桶找到重叠被毒死的老鼠例如第一只老鼠喝1,2第二只喝2,3。如果2有毒那么就是第二只被毒死。 然后我洗澡的时候突然想起之前看李永乐老师的一个视屏。多个集合中不同的数字。让学生随意想一个数。然后是否包含在集合中快速的得出结果。用了二进制来做。我思考了一下这个解决方案完美适用。 大致思路 被毒死的填1存活的为0。这样就可以得到被存在毒药序号的二进制数。然后转成10进制就可以

OpenGao的博客 1680

在linux上本地大模型部署与推理

您的Python脚本(客户端)可能在您的个人电脑上,而模型服务(服务器)在远程Linux服务器上。如果您的服务器有强大的NVIDIA GPU,并且您对性能有更高的要求(例如需要高吞吐量),vLLM是更好的选择。这种方式无需向公网暴露服务器端口,而是通过加密的SSH通道将服务器的端口“映射”到您的本地电脑上。我们将启动一个API服务器,它会加载您指定的模型,并等待您的代码前来调用。如果您直接在SSH窗口运行上面的命令,一旦您关闭窗口,服务就会停止。这是根据您的原始代码修改的版本,适配本地vLLM服务。

frostmelody 全网同名,大家多多关注呀~ 持续分享优质内容! 2054

手把手教你学SOME/IP「3.2.1.发布/订阅行为」

本文详细介绍了SOME/IP协议中的服务发现机制,重点解析了发布/订阅行为的流程。主要内容包括:1)服务发布与Method通信流程,涵盖find/offer报文交互、TTL保活机制及异常处理;2)服务订阅与Event通信流程,包括subscribe/ack报文交互和组播延迟机制;3)特殊场景如快速发送、半周期回复、重置订阅等机制。通过邮局订阅报纸的类比,帮助理解服务发现的核心原理,并强调流程图对于问题定位的重要性。文章为SOME/IP协议的工程实现提供了实用指导。

nihaoljq2010的博客 1221

小鼠试毒问题(二进制)

本篇为整理所得 1000桶酒,其中1桶有毒。而一旦吃了,毒性会在1周后发作。问最少需要多少只老鼠可在一周内找出毒酒? 如题。 解法一: 二进制编码。 对1000桶酒按照1~1000编码,需要10位二进制(2102^{10}210 = 1024 > 1000) 因此只需要取10只老鼠,每只老鼠只喝其对应位数为1的编号的酒。 即10只老鼠按以下编码: 第一只 0000000001 第二只 ...

ChanYipFan的博客 1万+

华为OD机试真题 2026-9-2【查找幸运数】

华为OD机试真题 新系统【查找幸运数】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【查找幸运数】多语言题解。

qq_45776114的博客 498

2021.11.25 力扣-每日一题-可怜的小猪

目录 题目链接:力扣 本文参考:1000桶水,其中一桶有毒,猪喝毒水后会在15分钟内死去,想用一个小时找到这桶毒水,至少需要几头猪? - 知乎 题目描述: 例子1 例子2 最终推论 最终代码: 题目链接:力扣 本文参考:1000桶水,其中一桶有毒,猪喝毒水后会在15分钟内死去,想用一个小时找到这桶毒水,至少需要几头猪? - 知乎 题目描述: 有 buckets 桶液体,其中 正好 有一桶含有毒药,其余装的都是水。它们从外观看起来都一样。为了弄清楚哪只水桶含有毒药,你可以喂一些猪喝,通过

销夜的博客 876

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

谈谈“老鼠找毒水“和“猪找毒水”问题

一、问题描述 1.老鼠找毒水 有1000杯水,其中有一杯是毒水,现在需要从中找出含毒药的水,毒水可以混合,可以用老鼠来实验;老鼠如果喝了有毒的水,一个小时内会死,请问如何安排试验,能够用最少的实验材料在一个小时内检测出有毒的水? 2.猪找毒水 1000桶水,其中一桶有毒,毒水可以混合,猪喝毒水后会在15分钟内死去,想用一个小时找到这桶毒水,至少需要几头猪? 仔细观察题目,其实区别就在与老鼠找毒水,老鼠只有2个状态,死和没死,猪找毒水,猪有5个状态,0-15min死,16-30min死,31-.

仓鼠玉米的博客 2726

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

算法 据说 这是当年微软招聘人才时出的题目。

开场白:我以为只有广州才有大量的公司有,2刀切金条,7天分给员工的笔试题 , 每次遇到都会骂几变娘,可笑,老板会给你分金条。没想到上海也遍地都是。 据说:这是当年微软招聘人才时出的题目! 二:思路 1.既然每天要给工人的报酬是要一样的,一共7天,那么每天的报酬就是金条的1/7 对半切,再对半切,最多也只有4等分,所以均分切是不可行的。 2.那么我们就可以把金条看成是数字7。 3.可以切2刀,切成3份,分别占1/7、2/7、4/7 三:具体分配 1.第一天拿出1/7给工人,自己还剩:2/7+4/7=6/7

cao919的专栏Net 304

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

老鼠试药 信息熵 二进制 458. 可怜的小猪

有 1000 只水桶,其中有且只有一桶装的含有毒药,其余装的都是水。它们从外观看起来都一样。 如果小猪喝了毒药,它会在 15 分钟内死去。 问题来了,如果需要你在一小时内,弄清楚哪只水桶含有毒药,你最少需要多少只猪? 回答这个问题,并为下列的进阶问题编写一个通用算法。 进阶: 假设有 n 只水桶,猪饮水中毒后会在 m 分钟内死亡,你需要多少猪(x)就能在 p 分钟内找出 “有毒” 水桶?这 n 只水桶里有且仅有一只有毒的桶。 提示: 可以允许小猪同时饮用任意数量的桶中的水,并且该过程不需要时间。 小猪喝完水

口袋里的星星的博客 765

直击信息本质 - 信息论

信息论前言定义信息熵例信息分析算法设计图算法原理算法拓展问题变种 前言 在信息论中,认为信源输出的消息是随机的。即在未收到消息之前,是不能肯定信源到底发送什么样的消息。 定义 信息熵 信息熵的计算公式为 式中对数一般取2为底,单位为比特。但是,也可以取其它对数底,采用其它相应的单位,它们间可用换底公式换算。(信息量的计算公式) 以上的定义可以简单理解,假设有一个数字值为0-1023之间,总共有1024种情况,那么它的信息量为log2(1024) = 10 bit。如果一个数字的值为0-1之间,那么信

keng_s的博客 1699

[信息论?] 多少次可以确定1000个单词的翻译

原题是这样的,出自2020bytecamp研发赛道第二场笔试填空题: 有一台机器,可批量输入单词,会返回其翻译值,但是不知道对应关系,现有1000个单词,问最少需要()次才可以确定它们的翻译。 很容易让人联想到google曾经出的一道面试题: 1000桶水,其中一桶有毒,小白鼠喝毒水后会在15分钟内死去,想用15分钟内找到这桶毒水,至少需要几只小白鼠? 以及它的一些升级版例如: 1000桶水,其中一桶有毒,猪喝毒水后会在15分钟内死去,想用一个小时找到这桶毒水,至少需要几头猪? 这题和googl

Coach-XP的博客 495

第三周周报

第三周周报 不知不觉已经到了第三周了,本周由于返校之类的杂事,学习上的事情有一点点耽误了,下周要好好补上了,本次想把结构体有关的内容整理一下,然后有一次每日一练涉及到了一点信息论的内容,这次也写上一点分享。 结构体总结 c语言中已经有了float、int、double等数据类型存放某一个数据,有了数组来存放一堆相同类型的数据,如果想存储一堆不同类型的数据就需要使用到结构体类型 结构体与数组的主要区别就在于数组是存放同一种类型的数据,而结构体可以存放不同类型的数据。 结构体的一般形式 struct Stude

sdogo6688的博客 770

智力题:老鼠与毒药问题的推广

大家应该都听说过这个老题目:有 1000 个一模一样的瓶子,其中有 999 瓶是普通的水,有一瓶是毒药。任何喝下毒药的生物都会在一星期之后死亡。现在,你只有 10 只小白鼠和一星期的时间,如何检验出哪个瓶子里有毒药? 这个问题的答案也堪称经典:把瓶子从 0 到 999 依次编号,然后全部转换为 10 位二进制数。让第一只老鼠喝掉所有二进制数右起第一位是 1 的瓶子,让第二只老鼠喝掉所有二进制数右起...

rosefun96的博客 1232

让你的软件支持繁体中文

让你的软件支持繁体中文中国台湾、香港的汉字用的是BIG5编码,而大陆的汉字用的是GB编码(GB2312也好,GBK也好),简体中文软件直接拿到繁体中文环境下运行,问题就出来了。怎么办呢? 我们的软件是一款用C#.NET+ASP.NET开发的,所谓B/S型的软件,客户端只须用浏览器访问我们的服务器就行了。很自然的就想到,把代码中的所有的简体字都转换成繁体字,问题不就解决了吗?说干就干。从网上找来了一

左直拳的马桶_日用桶 7794

Leetcode 458

  我这智商,刷Leetcode简单题都不够用了,又被一道简单题虐了,思路太巧妙了。记录一下。 题目链接:https://leetcode-cn.com/problems/poor-pigs/description/ 转自:https://blog.youkuaiyun.com/JackZhang_123/article/details/78775716 There are 1000 buckets,...

ZouCharming的专栏 495

[leetcode]——哪桶水有毒

有1000只水桶,其中有且只有一桶装的含有毒药,其余装的都是水。它们从外观看起来都一样。如果小猪喝了毒药,它会在15分钟内死去。 如果需要你在一小时内,弄清楚哪只水桶含有毒药,你最少需要多少只猪? 进阶:假设有 n 只水桶,猪饮水中毒后会在 m 分钟内死亡,你需要多少猪(x)就能在 p 分钟内找出“有毒”水桶?n只水桶里有且仅有一只有毒的桶。** 分析 你现在拥有一头猪,这头猪去喝水,如果他喝...

lucky52529的博客 3655

leetcode 458. Poor Pigs 可怜的猪 + 猪试毒需要最少的数量 + 发现规律

There are 1000 buckets, one and only one of them contains poison, the rest are filled with water. They all look the same. If a pig drinks that poison it will die within 15 minutes. What is the minimum...

JackZhangNJU的专栏 3449

[二进制]1000桶药,有一桶有毒,用多少小白鼠测试

题目:有1000瓶药,其中有一瓶有毒,小白鼠只要尝一点带毒的水7天后就会死亡,至少要多少只小白鼠才能在7天 后鉴别出哪瓶药有毒? 解法: 给1000个瓶分别标上如下标签(将10进制的编号转为一个10位长度的二进制数来表示): 0000000001 (第1瓶) 0000000010 (第2瓶) 0000000011 (第3瓶) . 1111101000 (第1000瓶)

zhuwenchao90的专栏 3663
上一篇: mysql查询课程成绩为二三名的sql(考虑并列和非并列
下一篇: 白话讲解一致性hash
HelloKitty_Gaga
博客等级 码龄9年 3粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值