毒酒问题

来源:互联网 发布:发票 自动读取数据 编辑:程序博客网 时间:2024/05/04 19:58

今天女朋友参加银行笔试,遇见一个题目,竟然是是一道编码问题,考金融学生,真是。

有1000桶酒 其中有一桶有毒 让老鼠喝一口毒酒 一周后会有中毒症状出现 现在需要一周后检测出有毒的那桶酒 请问至少需要多少只老鼠??


这个题目我的第一反应是999只,后来一想,不会这么简单,看题目选项有几只的,我觉得这个问题就得转换了。仔细一想,可能是考二进制编码。解答过程如下:

首先对1000桶按1~1000编码,需要10位二进制数,最多能编1024个。

因此只需要取10只老鼠,每只老鼠只喝其对应位数为1的编号的酒。

即10只老鼠按以下编码:

第一只 00000 00001

第二只 00000 00010

第三只 00000 00100

第四只 00000 01000
........
第十只 10000 00000

每只老鼠只喝其编码与酒编码做位与运算非0的酒。如果毒酒的编码在某一位为1,则监控该位的老鼠必喝,结果为1.


即把10只老鼠的结果,按位填入一个10位二进制数中,其结果即为毒酒编号。

如果第一只,第五只,第六只,第十只老鼠死亡,则对应位置为一,即编号1000110001的酒有毒。



0 0
原创粉丝点击