zoukankan      html  css  js  c++  java
  • 经典智力题

    1 称药问题

        有10罐药,其中有一罐已经变质……已知正常的药每粒10g,变质的每粒9g,那么怎样只称一次就查出哪罐变质了?

    解:从10罐药中依次取1, 2, 3, 4, …, 10颗,如果药粒均为10g的话,取出的药总重是(1 + 2 + 3 + … + 10) * 10 = 550g,存在变质的话,质量小于550g,550g –称出的重量便是所属的罐子。

    PS:

    如果有多瓶药变质的话,又怎么才能找到变质的罐呢?

    解:那么用上方法就无法解了,例如少了10g的话,可能是2和8号罐子药变质了。

    在上方法中,1, 2, …, 10的编码不唯一,采用二进制编码1~10里取药,即分别取1, 2, 4, …, 512颗。如是总重量少了10g,10 = (1010),可以知道,是2号和4号罐里的药变质了。

    2 称球问题

        一共12个同样的小球,其中只有一个坏球重量与其它不一样(未知轻重),给你一个天平,最少几次能找出那个不同重量的球。

    解:3次;

    1、  将12个球编号1~12,均分为三组,取1~4,5~8天平称重;

    2、  平衡则坏球在9~12号球中;

    2.1 将9、10球称;

    2.2 相等则9, 11再称,相等则12坏,不等则11坏;

    2.3 不等则仍9, 11称,相等则10坏,不等则9坏;

    3、  不平衡,则坏球在1~8号中,不防设1~4重,5~8轻;

    4、  将1,5~7放一端,8~11放另一端,称重;

    4.1 相等,则2~4有一个太重;再称2和3即可;

    4.2 不相等,如果1,5~7重,则1太重或8太轻,取一正常球与1或8称即可;

    如果1,5~7轻,则5~7中有一个太轻,再称5和6即可。

    3 赛马问题

    有25匹马,速度都不同,但每匹马的速度都是定值。现在只有5条赛道,无法计时,即每赛一场最多只能知道5匹马的相对快慢。问最少赛几场可以找出25匹马中速度最快的前3名?

    解:7次

    1、  分5组,跑5次后能得到前五组排序好的马;

    2、  用5组的第1名赛名,可以得到当前第1名的马,第4、5名的马不可以争前3。第1名组的2、3名,第2名组的1、2名,第3名组的第1名,该5匹马为争第2、3名的候选;

    3、  上述5匹候选马赛跑便可得到2、3名。

    参考文档:

    1、  http://bj.aoshu.com/e/20080520/4b8bc901ea556.shtml

    2、 http://www.cnblogs.com/sparkwen/p/3151532.html

  • 相关阅读:
    数据绑定表达式语法(Eval,Bind区别)
    使用博客园的第一件事 自定义主题
    sql2000 跨服务器复制表数据
    使用UpdatePanel 局部刷新出现中文乱码的解决方法!!
    MMC不能打开文件MSC文件
    sql 日期 、时间相关
    loaded AS2 swf call function in AS3 holder
    Rewrite the master page form action attribute in asp.net 2.0
    100万个不重复的8位的随机数
    flash 中实现斜切变型
  • 原文地址:https://www.cnblogs.com/qiernonstop/p/3373044.html
Copyright © 2011-2022 走看看