zoukankan      html  css  js  c++  java
  • 异常球称重问题

    有一堆球,其中一个异常,轻重未知,其他正常。天平只能比较轻重。问至少称多少次可得出异常球?

    4球2次:
    4个球1234。先比较12,若1=2,则12标准,34异常。拿一个标准和一个异常再比较一次便知。
    另:如果外界还有若干标准球可借助 ,也需要2次。

    8球3次:
    比较123和456。 若相等,则1-6为标准球, 78异常,再比较一次便知。
    若不等,则有两个标准球ab。将第一次比较结果小的和大的分别记为123,456,即 123<456
    第二次比较124和3ab:
    若124=3ab,则56异常;
    若124<3ab,则12异常,偏小(因为假设球偏大,则为3偏大,这与123<456矛盾);
    若124>3ab,则3偏小或者4偏大,第三步再比较34与ab,便知是3小还是4大。

    12个球3次:
    分3组,每组4个。先比较前两组,若相等,则异常球在第3组,再用两步可从4个球中比较出异常球,见上。
    若不等,则第三组为标准球。将第一次比较结果小的和大的分别记为1234,5678,即 1234<5678
    第二次比较125和346:
    若125=346,则78异常,与标准球再比较一次得出。
    若125<346,说明12轻或者6重。第三次比较16和标准球ab,若=则2轻;若<则1轻;若>则6重。
    若125>346,说明34轻或者5重。第三次比较与上种类似。

  • 相关阅读:
    LeetCode_637.二叉树的层平均值
    LeetCode_627.变更性别
    LeetCode_617.合并二叉树
    LeetCode_595.大的国家
    LeetCode_590.N叉树的后序遍历
    LeetCode_589.N叉树的前序遍历
    LeetCode_58.最后一个单词的长度
    LeetCode_566.重塑矩阵
    LeetCode_561.数组拆分 I
    LeetCode_56.合并区间
  • 原文地址:https://www.cnblogs.com/suncoolcat/p/3325045.html
Copyright © 2011-2022 走看看