以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 Java/Eclipse 』  (http://bbs.xml.org.cn/list.asp?boardid=41)
----  微软面试试题精选  (http://bbs.xml.org.cn/dispbbs.asp?boardid=41&rootid=&id=31822)


--  作者:hongjunli
--  发布时间:5/6/2006 2:24:00 PM

--  微软面试试题精选
微软面试试题精选
一.阶梯测试 

  ①走到一条岔路上,前面遇到两个人,一个人永远说真话,一个人永远说假话,你并不知道谁说真话谁说假话,只许问其中一个人一句话,就知道该往那里走了。

   (正常解题时间:30s ~ 2min)   

  ②三个带着自己的一个孩子过河,只有一条船,每次只能载两个单位,当大人不在身边的时候,如果小孩身边有别的大人,那他(她)就有危险,

   问:如何能在没有危险的情况下顺利过去。

   注意:船回来的时候至少得有一个单位在上面。

   (正常解题时间:1min ~ 5min)   

  **③12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。13个呢?

   (正常解题时间:20min ~ 60min ,本人将近40分钟做出正确解答)   

  二.微软面试题分类精选(部分试题参考《程序员》杂志试刊一。均为本人自己解答,答案稍后公布)   

  Ⅰ. 微软试题 D基础理论运用能力   

  ①一火车,以15km/h从L.A.开往N.Y.,另一以20km/h从N.Y.开往L.A.;

   一只鸟从Los以30km/h与两车同时出发,遇到另一火车后返回,并往复至两车相遇,求其运动位移及路程。

   (正常解题时间:5min ~ 10min)   

  Ⅱ. 微软试题 D逻辑思维能力   

  ②有足量红黄蓝小球放在同一容器中,现需取2个颜色相同的,最少要取几个。

   (正常解题时间:1s ~ 10s)   

  ③足量水,3ml,5ml容器各一,如何测4ml水。

   (正常解题时间:20s~40s)
  Ⅲ. 微软试题 D知识迁移能力   

  *④足量水,3ml,5ml容器各一,如何通过它们确定出所有正常数体积的水。(不能用 1 ml 来拼凑)

   (此题是我自编的一道难度较上题稍有提高的联系实际题,想想日常生活中哪些是可以确定所有正常数量的。正常解题时间:20s ~ +∞)   

  Ⅳ. 微软试题 D实际生活综合能力   

  *⑤4个装了药丸的容器,正常药丸质量一定;其中一容器中全装的变质药丸,其质量为正常药丸质量+1。只称一次,如何判断那一容器中药丸变质。

   (正常解题时间:10s ~ +∞)   

  ***⑥工人为你工作7天,回报为一根金条(既然说是金条,应该就不能将其弯曲吧?),

     必须在每天付给他们一段,且只能截2次,你将如何付费?

    (本人目前未得到正解,解题时间暂定为 +∞)   

  ============   

  提示:一.①,② 略;③:太多了,有兴趣以后给……

   二.① 略;② 4次;③ 略;

     ④ 有了第三题,这题应该不难,只要你知道,半分钟的事,如果你不知道,那就永远也做不出来了。

         想想人民币面额的设置。

     ⑤ 如果你想到正路了……10秒就够,如果没有,永远不可能算出来。

         从4个容器取不同数量的药丸,分为两组进行秤量入手。

         如:在1,2,3,4号容器中分别取1,2,3,4个药丸。把这10个药丸放在一起,秤量;通过它们

         重量与标准值的差进行判断(简单一例:假设称得总质量是 10倍标准值+2,则2号为变质药丸)

     ⑥ 如果金条可以弯折,那自然很好做……可是~~~希望有会做的能够告诉我,虚心等待赐教。

  付费问题解答(本题由张晔同学解答)   

  将金条分在1/7和3/7初分为1/7、2/7、4/7三段,第一天付给1/7,第二天拿回并付给2/7,依此类推。   

  过河问题解答   

    大人,孩子分别为:A a; B b; C c;

    1: A & a 过去,a留,A返

    2: b & c 过去,b留,c返

    3: A & B 过去,B,b留,A,a返

    4: A & C 过去,A,C留,b返

    5: A & a 过去,a留,A返

    6: a & b 过去,a留,b返

    7: a & c 过去,此时已经全部到达对岸上述答案是我做出的,标准答案定不唯一,如哪位有更简方案望赐教。  
 称球问题解答及总结   

  分别为a b c d, e f g h, i j k l,取出abcd, efgh   

  第一种情形:

  如果重量相等,则说明所求在 ijkl 中,

  称量 i j ,

  如果相等,比较 a k ,如果a=k,则所求为 l ;如果ak不等,则所求为 k 。

  如果不等,比较 a i ,如果a=i,则所求为 j ;如果不等,则所求为 i 。   

  第二种:

  如果 abcd 轻,

  在efgh中取出 fgh ,替掉abcd中 bcd,从ijkl中取出 ijk 个放入 e 中填补空位:

  如果afgh轻:则说明所求在a或e,拿 e 和除 a 以外的任意一球比较,如果重量相等,则所求的球是 a ;如果不等,则所求的球是 e 。

  如果afgh重:说明所求在 fgh 中,且所求较重;比较 f g ,等重则所求为 h ;不等则重的为所求。

  如果一样重:说明所求在 bcd 中,且所求较轻;以下同afgh重的情形。   

  第三种:

  如果 abcd 重,

  在efgh中取出 fgh ,替掉abcd中 bcd,从ijkl中取出 ijk 个放入 e 中填补空位:

  如果 afgh 重:则说明所求在a或e,拿 e 和除 a 以外的任意一球比较,如果重量相等,则所求的球是 a ;如果不等,则所求的球是 e 。

  如果afgh轻:说明所求在 fgh 中,且所求较轻;比较 f g ,等重则所求为 h ;不等则重的为所求。

  如果一样重:说明所求在 bcd 中,且所求较重;以下同afgh轻的情形。   

  此题答案就是这样。下面与大家进而探讨称任意球数的通用性。   

  总结:

    天平称重,有两个托盘比较轻重,加上托盘外面,也就是每次称重有3个结果,就是ln3/ln2比特信息。n个球要知道其中一个不同的球,如果知道那个不同重量的球是轻还是重,找出来的话那就是n个结果中的一种,就是有ln(n)/ln2比特信息,如果不知道轻重,找出来就是2n(n个球中的一个,轻或者重,所以是2n)个结果中的一种,那就是ln(2n)/ln2比特信息。

    假设我们要称k次,根据信息理论,那显然两种情况就分别有:

    (1)k*ln3/ln2>=ln(n)/ln2 (k>=1) 解得k>=ln(n)/ln3

    (2)k*ln3/ln2>=ln(2n)/ln2 (k>1) 解得k>=ln(2n)/ln3

    这是得到下限,可以很轻易证明满足条件的最小正整数k就是所求。比如称3次知道轻重可以从3^3=27个球中找出不同的球出来,如果不知道轻重就只能从(3^3-1)/2=13个球中找出不同的球出来。


--  作者:lbfeng
--  发布时间:5/18/2006 4:42:00 PM

--  
有意思,支持一下!
--  作者:zrjwwd
--  发布时间:5/19/2006 5:19:00 PM

--  
不错我还有2道解不出
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms