瞎扯淡 一个还算好玩的题目

yfractal · 2014年03月22日 · 最后由 discover 回复于 2014年03月22日 · 2707 次阅读

1000 个瓶子,有一个瓶子是有毒的,鸡吃了就会在一周后死去,吃其他的没问题。

给你一周的时间,1000 个瓶子,外加 10 只鸡,问那个瓶子是有毒的。

不是脑筋急转弯(其实原版是)。。。

共收到 5 条回复

称球吧?

2 ** 10 = 1024 > 1000

binary mask 看死了哪些鸡就知道了

#4 楼 @linktoming 每个数是一个 2 进制编码,1000 个数总共需要十位编码。方案如下: 对于数字 i,对与 i 的二进制编码对应的鸡喂第 i 瓶药。比如对于数字 11,二进制位是(1011),于是把第 11 瓶药给第 1,2,4 只鸡吃。 最后判断方法如下: 假设第 i 瓶是毒药,那么 i 的二进制编码对应的鸡会死掉,比如是第 11 瓶是毒药,那么第 1,2,4 只鸡会死,其他鸡对没事。通过看那些鸡死掉,合成 2 进制编码,得到结果。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册