MDGSF Software Engineer

[算法学习][智力题] 喝酒问题

2018-04-13
Art

问题:

国王有 50 桶酒,有一桶被下毒了,喝了有毒的酒会在 15 分钟后死亡。因为国王在 2 个小时之后就要用这些好酒来招待客人了,所以要在 2 个小时之内找出这桶有毒的酒。于是国王决定用死囚来试酒。那么最少要用几个死囚才能找出这桶有毒的酒?

答案见底部
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|/

答案:2 个。

分析:

2 小时 / 15 分钟 = 8,所以一共有 8 份的时间。

那么可以把 50 桶酒分为 8 份。

第 1 份 第 2 份 第 3 份 第 4 份 第 5 份 第 6 份 第 7 份 第 8 份
6 桶酒 6 桶酒 6 桶酒 6 桶酒 6 桶酒 6 桶酒 7 桶酒 7 桶酒
A1 B1 C1 D1 E1 F1 G1 H1
A2 B2 C2 D2 E2 F2 G2 H2
A3 B3 C3 D3 E3 F3 G3 H3
A4 B4 C4 D4 E4 F4 G4 H4
A5 B5 C5 D5 E5 F5 G5 H5
A6 B6 C6 D6 E6 F6 G6 H6

第 1 份有 6 桶酒。第 2 份有 6 桶酒。。。

找 2 个死囚 A 和 B。

A 每隔 15 分钟喝一份酒。就是第一个 15 分钟喝 A1、A2、A3、A4、A5、A6,第二个 15 分钟喝 B1、B2、B3、B4、B5、B6。

B 每隔 15 分钟喝每一份酒的第 X 桶。就是第一个 15 分钟喝 A1、B1、C1、D1、E1、F1、G1、H1,第二个 15 分钟喝 A2、B2、C2、D2、E2、F2、G2、H2。

就是一个人横着喝,另一个人竖着喝。

最后的交叉点就是有毒的那桶酒。


weixingongzhonghao

Comments

Content