Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1204879
  • 博文数量: 252
  • 博客积分: 5421
  • 博客等级: 大校
  • 技术积分: 2418
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-17 12:59
文章分类

全部博文(252)

文章存档

2017年(3)

2016年(18)

2015年(31)

2014年(18)

2013年(7)

2012年(8)

2011年(12)

2010年(30)

2009年(32)

2008年(57)

2007年(36)

分类:

2008-01-09 18:20:31

By 阿新(Seraph Chutium)--

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

这些都是去年看了《程序员》杂志后,从以前的试题中找来出给当时的同学们做的。
现在传上来,看看大家会不会做。目前所有试题都已经做出正确解答,稍后会公布出来。

------------------------------------------------------------------------------------------------------------------

说明:题号前面的*表示编者认为的试题难度,最高为***(是我没做出来~);没有*的表示极简单。

以下各题均无正确解答,答案都是编者自己想的(最后一题至今未做出),
题后所注正常解题时间均以本人解题时间为参考,
如:30s ~ 2min 意为:本人解题时间在30秒到2分钟之间。
本人并不认为自己能力超长(或超弱),故定为正常解题时间。

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

一.阶梯测试(最后一题难度较大*很大,前两题难度相应递减)

①走到一条岔路上,前面遇到两个人,一个人永远说真话,一个人永远说假话,你并不知道谁说真话谁说假话,只许问其中一个人一句话,就知道该往那里走了。
 (正常解题时间:30s ~ 2min)

②三个带着自己的一个孩子过河,只有一条船,每次只能载两个单位,当大人不在身边的时候,如果小孩身边有别的大人,那他(她)就有危险,
 问:如何能在没有危险的情况下顺利过去。
 注意:船回来的时候至少得有一个单位在上面。
 (正常解题时间:1min ~ 5min)

**③12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。13个呢?
 (正常解题时间:20min ~ 60min ,本人将近40分钟做出正确解答)

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

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

------------------------------------------------------------------------------------------------------------------

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

①一火车,以15km/h从L.A.开往N.Y.,另一以20km/h从N.Y.开往L.A.;
 一只鸟从Los以30km/h与两车同时出发,遇到另一火车后返回,并往复至两车相遇,求其运动位移及路程。
 (正常解题时间:5min ~ 10min)

------------------------------------------------------------------------------------------------------------------

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

②有足量红黄蓝小球放在同一容器中,现需取2个颜色相同的,最少要取几个。
 (正常解题时间:1s ~ 10s)

③足量水,3ml,5ml容器各一,如何测4ml水。
 (正常解题时间:20s~40s)

------------------------------------------------------------------------------------------------------------------

Ⅲ. 微软试题—知识迁移能力

*④足量水,3ml,5ml容器各一,如何通过它们确定出所有正常数体积的水。(不能用 1 ml 来拼凑)
 (此题是我自编的一道难度较上题稍有提高的联系实际题,想想日常生活中哪些是可以确定所有正常数量的。正常解题时间:20s ~ +∞)

------------------------------------------------------------------------------------------------------------------

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

*⑤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个球中找出不同的球出来。

------------------------------------------------------------------------------------------------------------------
阅读(1104) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~