在N个球中用天平称最少次数找出坏球

以前在上学的时候,应该会常常听到这个问题,有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(次)12345
N(个)392781243

那上面说的是已知坏球是较轻或者较重的情况,那假如只知道有坏球,但是不知道坏球是重了还是轻了情况呢?

那这里还是举一个例子进行说明,假设有6个球,那么这个坏球就有12种可能性:

1轻(L)2轻3轻4轻5轻6轻
1重(H)2重3重4重5重6重

首先还是分成三堆12,34,56进行称重,先用12和34称重,那么这里会有三种情况:

  1. 天平是平的,那么就会有5L5H6L6H四种情况
  2. 左边重,那么就会有1H2H3L4L四种情况
  3. 右边重,那么就会有1L2L3H4H四种情况

下一步再分别对三种情况进行说明:

  1. 用5或者6去和1234中其中一个去比较称重,假如平了,那么就是6L6H,再用6去和其中一个正常的去比较即可得出是6L还是6H了;假如左重,那么就是5H;假如6重,那么就是5L。
  2. 用13和2和5或6其中一个一起比较称重,假如平了,那么就是4L;假如左重,那么就是1H;假如右重,那么就是2H3L,再用2或者3去和其中一个正常的去比较即可得出是2H还是3L了。
  3. 同样用13和2和5或6其中一个一起比较称重,假如平了,那么就是4H;假如左重,那么就是2L3H,再用2或者3去和其中一个正常的去比较即可得出是2H还是3L了;假如右重,那么就是1L。

由上述情况说明,同样可以得出一个方程,N个球最少需要k次找出坏球,则为2N*(⅓)k≤1化简解出得N≤3k/2,由于这个不等式解出来是小数,所以对这个不等式进行放缩一下则为N≤(3k-1)/2

这里说的N个球是比较粗略情况,那么实际上在第一次分球称重的时候,分成三堆的时候可以分为aab三堆,那么这里其实也是可以分为两种情况:

  1. aa称重时平衡,那么他实际所需要的k次的不等式为2b*(⅓)k-1≤1,化简解出得b≤3k-1/2,放缩后得b≤(3k-1-1)/2
  2. aa称重时不平衡,那么他实际所需要的k次的不等式2a*(⅓)k-1≤1,化简解出得a≤3k-1/2,放缩后得a≤(3k-1-1)/2

两种情况加起来则为N=2a+b≤(3k-3)/2,那么可得到下面这张表,k次最多可以找出N个球中的那个坏球:

k(次)2345
N(个)31239120
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇