




















以前在上学的时候,应该会常常听到这个问题,有N个球,比如9个,其中有一个是坏球,且质量较轻或者较重(已知,这里假设较轻),现在只有一个天平,则最少需要几次才能找出那个坏球?
以这里例子为例,应该需要两次就可以找出那个坏球了,那么具体怎么做呢?首先先把球分为三堆A、B、C,每堆三个球,先用天平称A和B,那么假如A堆或者B堆中有较轻的,那么就取出那堆分成三堆每堆一个球再进行一次称重,假如他们一样重,那就取出C堆进行称重,那么再进行一次上述的操作,就可以找出那个坏球了。
从这里例子可以看出,假如我们需要在N个球找出那个坏球,那么我们的原则就是尽可能的将N个球分成相等的三份去进行称重即可,假如N个球不是3的倍数,假设是8,那么我们分成332即可。由此我们可以得出一个方程,N个球最少需要k次找出坏球,则为N*(⅓)k≤1化简解出得N≤3k,那么可得到下面这张表,k次最多可以找出N个球中的那个坏球:
| K(次) | 1 | 2 | 3 | 4 | 5 | … |
| N(个) | 3 | 9 | 27 | 81 | 243 | … |
那上面说的是已知坏球是较轻或者较重的情况,那假如只知道有坏球,但是不知道坏球是重了还是轻了情况呢?
那这里还是举一个例子进行说明,假设有6个球,那么这个坏球就有12种可能性:
| 1轻(L) | 2轻 | 3轻 | 4轻 | 5轻 | 6轻 |
| 1重(H) | 2重 | 3重 | 4重 | 5重 | 6重 |
首先还是分成三堆12,34,56进行称重,先用12和34称重,那么这里会有三种情况:
下一步再分别对三种情况进行说明:
由上述情况说明,同样可以得出一个方程,N个球最少需要k次找出坏球,则为2N*(⅓)k≤1化简解出得N≤3k/2,由于这个不等式解出来是小数,所以对这个不等式进行放缩一下则为N≤(3k-1)/2
这里说的N个球是比较粗略情况,那么实际上在第一次分球称重的时候,分成三堆的时候可以分为aab三堆,那么这里其实也是可以分为两种情况:
两种情况加起来则为N=2a+b≤(3k-3)/2,那么可得到下面这张表,k次最多可以找出N个球中的那个坏球:
| k(次) | 2 | 3 | 4 | 5 | … |
| N(个) | 3 | 12 | 39 | 120 | … |
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。