zoukankan      html  css  js  c++  java
  • 常见逻辑题

    有些套路不得不说猴赛雷啊, mark~

    (知之为知之,是知也。虽说网上解说纷纭,自己写出来才算理解了一部分吧)

    1、有12个小球,有一个质量和其它十一个不一样,不知道是重还是轻。用一个天秤称三次,把这个质量不同的球给区别出来  

    首先给小球编个号吧, 类似进制的描述方式似乎很方便。1~C
    
     【思路】
    
             首先肯定是逐步排除的一个想法。但是,如果第一步6V6这样对称称重的话,只能得到哪边偏重的信息,信息太少了。
    
      如果能分成3等分,4V4V4这样来称重的话。首先可以排除4个球,另外还可以得到4V4轻重的信息,似乎可行。
    
      第一步确认下来, 那么第二步如何抉择呢?我们不如反过来想一下,这一步要达到什么效果。
    
      如果是4个球,试了下,似乎不能排除到1个球的。因此,第二步必须是要能从8个球排除到3个球的,但如果不考虑第一步的结果,仅仅根据8选3,一次称重肯定是行不通的。
    
      那么,要根据第一次结果的,选出3个可能有问题的球。那么我们可以考虑第一步的方式,尽量多排除。例如使用 1235 V 4ABC (有其他选择,关键是要混入3个无关变量,为啥?思考ing……)
    
    【步骤】
    
       1,1234 > 5678 (其他< 结果和>一样的分析方式,忽略;=结果将问题球范围缩减到4,后面很简单,忽略)
    
       2,1235 > 4ABC (其余情况更好分析)
    
       不可能4,5,排除(假设法排除情况很好用哇);不可能678,如果是的,那 123>ABC不成立;那么问题小球在123中
    
      3,1 V 2 (1>2 ,则1偏重;1=2,则3偏重;1<2,则2偏重)
    
    【总结】
    
            满脑子的应试教育的思想,要是这题无解呢?!
    
      这题虽然要考虑的分支颇多,有点举不胜举的味道。但是如果每次只分析可能最多的一个分支,列举出来就清晰多了

    【参考】

    http://www.cnblogs.com/zemliu/archive/2012/09/16/2687175.html


    【附】有些题挺有意思的,对打开思路也挺有帮助

    http://www.cnblogs.com/skyseraph/archive/2012/03/22/2410993.html

  • 相关阅读:
    c++ vector容器的使用,序列倒叙reverse(),容器底部插入一个数值push_back()
    vs2015+opencv-3.2.0-vc14配置
    串的匹配算法--C语言实现
    顺序队列与链式队列--C语言实现
    链式栈-C语言实现
    顺序栈与两栈共享空间-C语言实现
    静态链表-C语言实现
    循环双向链表-C语言实现
    链表-C语言实现
    顺序表-C语言实现
  • 原文地址:https://www.cnblogs.com/Hughzm/p/7802121.html
Copyright © 2011-2022 走看看