:::info

1000桶水,其中三桶有毒,猪喝毒水后会在15分钟内死去,想用一个小时找到这桶毒水,至少需要几头猪?

限制条件:
1.一桶毒水足以导致一头猪的死亡。
2.猪很健康,没有疾病,也不会出现意外事故。其死亡只是毒水导致的,不会有其他因素导致死亡。
3.猪的承水量无穷大,因此不考虑猪因饮用了过量的水而拒绝继续实验的情况,且假设饮一桶花费时间为零。 :::

简单的例子:两只猪,25桶水。将水桶(@)如下排列:

  1. 1 2 3 4 5
  2. @ @ @ @ @
  3. @ @ @ @ @
  4. @ @ @ @ @
  5. @ @ @ @ @
  6. @ @ @ @ @

头15分钟:
第一头猪喝位于(1,一)、(1,二)、(1,三)、(1,四)和(1,五)的水;
第二头猪喝位于(1,一)、(2,一)、(3,一)、(4,一)和(5,一)的水。
换种说法,每个15分钟内,两只猪分别喝一列水和一排水。
这样,一小时后毒水的坐标可以表示为:
1. 若两只猪都死了:
猪找毒药桶 - 图1
2. 只死了一只:
1) 第一只猪死了: 猪找毒药桶 - 图2
2) 第二只猪死了: 猪找毒药桶 - 图3
3. 都没死: 猪找毒药桶 - 图4
所以,对于三只猪、125桶水:可以用(排,列,层)表示;对于四只猪、625桶水,可以用(排,列,层,第四个空间维度的表示法)表示。
当然并不一定要把水桶排成四维的,只要正确地给它们编上号就行了。
因此,经过简单类推,对于每只猪能喝五排/五列的情况,能确定是否有毒的水桶数应当是:
猪找毒药桶 - 图5
又因为5的4次方625小于1000,5的5次方3125大于1000,因此需要5只猪。