欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

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

发布时间:2023/12/9 编程问答 61 豆豆
生活随笔 收集整理的这篇文章主要介绍了 关于1000桶水,其中一桶有毒,猪喝毒水后会在15分钟内死去,想用一个小时找到这桶毒水,至少需要几头猪?的问题 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

这是个概率学问题,在计算机中也是个进制问题,我看了网上一些关于这个问题的解答,感觉有的人说的并不清楚,或者感觉有的写解答的人自己都没太搞清楚,回答也不对,只是因为知道答案是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桶水,其中一桶有毒,猪喝毒水后会在15分钟内死去,想用一个小时找到这桶毒水,至少需要几头猪?的问题的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。