【底层逻辑】死囚试毒酒(改编)

简介: 高难度智力题之死囚试毒酒改编版:现在有1024瓶红酒,其中有一瓶有剧毒。人喝了之后经过大约七天然后突然毒发而死。(喝一滴和喝一瓶效果一样,七天内并没有病发的现象)毒酒跟普通红酒外表、气味完全一样,所以除了用活人试毒外别无他法。
高难度智力题之死囚试毒酒改编版:
现在有1024瓶红酒,其中有一瓶有剧毒。
人喝了之后经过大约七天然后突然毒发而死。
(喝一滴和喝一瓶效果一样,七天内并没有病发的现象)
毒酒跟普通红酒外表、气味完全一样,所以除了用活人试毒外别无他法。
现在你手上有一批用来试毒的死囚,每位死囚都按规定能收取安家费一万元(不论最后是否中毒)。
你必须于七天后找出哪一瓶是毒酒。问如何设计方案使用最少成本?

答案:最少只需10个死囚。
先探讨一下理论最小值:总共1024=2的10次方种情况;
                      设至少n个囚犯,共有C(n,0)+C(n,1)+……+C(n,n)=2的n方种情况。
                      (全不死,死一个,死两个……全死)
                      令2的n方≥1024,n最小值为10,正好取等于号时。
                      也就是说n<10是绝对不可能的(而n稍大于10的话也不一定可以)
而理论值往往就是答案。过程略(太复杂)
为表示具体过程,可以以2的3方=8瓶酒为例,只需3人:A、B、C。酒瓶编号1—8.
    则每人喝过的酒可以为:
    A:2、5、6、8
    B:3、5、7、8
    C:4、6、7、8
    则8种死法分别对应8个酒瓶(请读者自证)
    所以1024瓶酒只需10人也可证明。
但理论上的答案不一定行得通(受到现实条件的制约),比如死囚试毒酒的原题是1024瓶酒中有2瓶毒酒。
    则令2的n方≥C(1024,2),n最小值为19,而目前世界最高记录是33个死囚。
目录
相关文章
|
5月前
|
设计模式 算法 开发者
软件复用问题之区分「不重复」和「复用」,如何解决
「不重复」和「复用」之间有何区别软件复用问题之区分「不重复」和「复用」,如何解决
|
5月前
|
存储
代码优化设计问题之当方法体只有一行时,独立存在的方法的必要性开始存疑问题如何解决
代码优化设计问题之当方法体只有一行时,独立存在的方法的必要性开始存疑问题如何解决
|
5月前
|
开发者
编程问题之逻辑编程有什么缺点
编程问题之逻辑编程有什么缺点
|
存储 负载均衡 安全
一步步实现SDDC-逻辑交换与逻辑路由
实验摘要: 1&gt;逻辑交换实现 [难度★复杂度★] 2&gt;逻辑路由实现 [难度★复杂度★★]
一步步实现SDDC-逻辑交换与逻辑路由
|
人工智能 大数据 程序员
一文看懂开源图化框架中的循环设计逻辑!
相信大家在日常工作中,已经精通各种循环逻辑的实现。就拿我来说吧,多年的工作经验,已经让我可以熟练的使用 C++,Python,英语等多种语言,循环多次输出“hello word”。不过大家有没有想过一个这样的问题:如何在一个有向无环图(Directed Acyclic Graph,简称dag)中实现循环呢?
763 0
一文看懂开源图化框架中的循环设计逻辑!
|
开发工具
微信小游戏开发实战5-重复执行和逻辑循环的区别
本篇主要内容包括了解帧的概念,以及理解重复执行和逻辑循环这两种循环积木块之间的区别。 如果你没有任何的游戏开发经验,欢迎阅读我的“人人都能做游戏”系列教程,它会手把手的教你做出自己的第一个小游戏。
117 0
|
存储 Web App开发 Java
Android性能优化的底层逻辑
Android性能优化的底层逻辑
245 0
Android性能优化的底层逻辑
|
Java
LanguageTool精简的两个思路
LanguageTool精简的两个思路
78 0
|
开发框架 JavaScript 小程序
小程序(逻辑层的全部知识点)保姆级讲解
小程序(逻辑层的全部知识点)保姆级讲解
210 0
小程序(逻辑层的全部知识点)保姆级讲解
|
JSON 算法 测试技术
接口测试平台174:并发底层(顺便谈谈俩个版本区别)
接口测试平台174:并发底层(顺便谈谈俩个版本区别)
接口测试平台174:并发底层(顺便谈谈俩个版本区别)