通信人家园

标题: 一个题目  [查看完整版帖子] [打印本页]

时间:  2010-4-23 14:16
作者: ianym     标题: 一个题目

某国王有 1000 瓶红酒,并打算在他的六十大寿打开来喝。不幸的是,其中一瓶红酒被人下了药,凡是沾到者不到一天的时间必定死亡(只要沾到一滴也会死)。由于国王的大寿是在明天(假设就只有 24 小时),而他要尽快把有毒的酒找出来。所以,他就吩咐侍卫用监牢里的死刑犯来喂酒。如果监牢里的死刑犯有“多不胜数”个,你要多少就有多少,那么请问你最少需要几个死刑犯来帮你喂酒呢?
时间:  2010-4-23 14:36
作者: microcloud

是可以勾兑的啊?编个程序来算巴
时间:  2010-4-23 17:00
作者: wqliuxin123

1000个
时间:  2010-4-23 17:01
作者: wqliuxin123

999
时间:  2010-4-23 17:59
作者: laoliu10

这个有问题啊,如果是喝了立刻死亡还是有的计算的.
如果就是不到一天,那就不好说了啊。
时间:  2010-4-24 04:33
作者: lj3088568

喝了立马死,只要一个人就可以了。
时间:  2010-4-24 23:08
作者: truelance

10个犯人
把1-1000分别用二进制表示
第1个犯人喝编号最低bit为1的,即1,3,5,7,9,....
第2个犯人喝编号次低bit为1的,即2,3,6,7,10,...
第3个犯人喝第3个bit为1的,即4,5,6,7,12,13,14,15,20,...
依次类推,...
第10个犯人喝最高bit为1的,即512,513,514,515,516,...

这样10个犯人的生死组合就可以唯一表示一个编号,
例如1,3,7犯人死,其他犯人活,就代表
(0001000101)b = 69号瓶有毒
时间:  2010-5-20 19:15
作者: microcloud

如果只有4瓶酒,需要几个倒霉的坏蛋?

按照楼上的方法是3个,实际为2个,因为有一瓶酒是不需要喝的

楼上的算法改为1-999表示成2进制,...........

结果还是10个人

[ 本帖最后由 microcloud 于 2010-5-20 23:10 编辑 ]




通信人家园 (https://www.txrjy.com/) Powered by C114