【智力题小结】

【用老鼠检测毒药问题】

8个瓶子中有1瓶毒药,一只老鼠吃到毒药一周之内会死,如果要在一周内检出有毒药的一瓶,至少需要几只老鼠?

2^3=8,需要
  000=0 

  001=1 

  010=2 

  011=3 

  100=4 

  101=5 

  110=6
  111=7
      一位表示一个老鼠,0-7表示8个瓶子。也就是分别将1、3、5、7号瓶子的药混起来给老鼠1吃,2、3、6、7号瓶子的药混起来给老鼠2吃,4、5、6、7号瓶子的药混起来给老鼠3吃,哪个老鼠死了,相应的位标为1。如老鼠1死了、老鼠2没死、老鼠3死了,那么就是101=5号瓶子有毒。


【摸球问题】

题目:一个桶里有100个白球,100个黑球,现在按如下规则取球:

(1)每次从桶里拿出来两个球

(2)如果取出两个同色的球,就再放入一个黑球

(3)如果取出两个异色的球,就再放入一个白球

问:最后桶里剩下一个黑球的概率。


答:由规则易得,桶里的球的个数是奇数个,白球是偶数个

   要么根据(2)取出两个白球;要么根据规则(3)取出了一黑一白,然后又放了一个白球进去,相当于白球数目没变。

   所以最后桶里的白球数要么是2个,要么是0个;

   如果剩两个白球,那么肯定还有一个黑球,取出白球后,就再放入一个黑球,……,最后肯定只剩下一个黑球;

   如果剩0个,以此类推,最后还是只剩下一个黑球……


总结:所以这道智力题重在分析,而不是一上来就算各种概率什么的……


【翻瓶盖问题】

9个向下盖着的瓶盖,每次只准翻两个,问翻几次可以让全部盖子朝上?

答:翻多少次都不可以实现。最后总有一个盖子跟其他盖子是相反的。

(感觉这道题答案是显然的……)

【摸球先后策略问题】

题意:总共20个球,两个人轮流拿,每次每人必须拿球,而且只能拿1/2/4个球,拿到最后一个球算输,请问先走的必胜还是后走的必胜,有没有固定的策略。

这种题感觉还是挺多的,leetcode上也有,而且各种花样,所以应该好好分析一番找找规律,再下结论。


先找一下规律:

(1)首先考虑某一方在拿球的时候,还剩下1个球,那么这一方必输;

(2)再考虑某一方在拿球的时候,还剩下2个球,那么这一方可以只拿1个球,那么对方就输了;

(3)再考虑还剩3个球,那么这一方可以拿2个球,还是对方输;

(4)再考虑还剩4个球,要么你拿4个就输了;要么你先拿1个,那对方拿2个你也输了;要么你先拿2个,那对方拿1个你也输了。所以你拿的时候如果剩下4个球,你必输。

……以此类推……

(5)剩7个球,你拿1个,对方就拿2个,还剩4个球,回到(4);

                         你拿2个,对方就拿1个,还剩4个,回到(4);

                         你拿4个,对方拿2个,还剩1个,还是输了。所以剩7个也输了

(6)当你拿的时候还剩3n+1个球时,你必输。因为不管你怎么拿,对方都有办法令剩下的球数是3n+1;

         比如3n+1个球中,你拿1个,对方就拿2个,此时还剩3n-2=3(n-1)+1

         比如3n+1个球中,你拿2个,对方就拿1个或4个,此时还剩3n-2=3(n-1)+1或3n-5=3(n-2)+1

         比如3n+1个球中,你拿4个,对方就拿2个,此时还剩3n-5=3(n-2)+1


所以……只要第一个人先拿1个,然后后面一直让球数保持在3n+1个,那么先拿的就能赢……


心好累……


【赛马问题——决出前4名】

答案出处:http://www.cnblogs.com/reanote/p/find_4th_in_64horse.html 


题意:有64匹马,赛场上只有8条跑道,请问最少需要比赛多少场才能确定跑得最快的那4匹马,不可以借助计时器给马计时。

第一步:全部马分8组,各跑一次,然后淘汰掉每组的后四名(8次);黄色的为晋级的马

 

第二步:取每组第一名进行一次比赛,然后淘汰最后四名所在组的所有马(1次):

分析:其实这时候棕色区域的马也可以淘汰了,A1可以直接晋级(NO.1);

第三步:A2、A3、A4、B2、B3、C1、C2、D1八匹马跑一次,即:在剩下需要排名的马中,除了B1外,其它8匹马跑一次(1次)

分类讨论:

1、如果这次排名,B2或C1能进前三名,则加上B1后,B1一定能进前三名,因为B1 排名比B2和C1都要靠前;

     到此比赛可以结束了;这种情况8+1+1=10次出结果;

2、如果这次排名,B2或C1不能进入前三名,则需要再进行一次比赛,B1、A2、A3、A4进行,取前三名:

     这种情况8+1+1+1=11次出结果。

 

ps:至于11次那种情况能不能少,暂时没想到,也没有去进一步证明。


有一个5升的瓶子,一个6升的瓶子,怎么装出3升的水

1 先装5升瓶子,倒入6升瓶子,这时6升瓶子里有5升水
2 再装5升瓶子,倒入6升瓶子,这时5升瓶子里还剩4升水
3 6升瓶子里有6升水,倒掉,再倒入第二步里5升瓶子剩下的4升水,这时6升瓶子里有4升水
4 再装满5升瓶子,往6升瓶子里倒,只能倒走2升,5升瓶子里剩3升水.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值