微软面试题!

sharpmark 2001-08-11 06:22:44
  你让工人为你工作7天,回报是一根金条。这个金条被平分成相连的7段。你必须在每一天结束的时候给他们一段金条。如果只允许你有两次把金条截断,那你如何给你的工人付费?

  想象你正站在一个镜子面前,正对着。举起你的左手,再举起你的右手,看看你的影像。当你举起你的左手时,你的影像举起的是他的右手。但是当你翘起你的脑袋时,你的影像表现一致,而不是将他的脑袋降低。为什么镜子中的影像能够颠倒左右,却不能颠倒上下?

  你有四个装了药丸的罐子。每一个药丸都有一定的重量,被污染的药丸被放在一个罐子里,而且它的重量是正常药丸重量+1。只称量一次,如何判断那一个罐子是放了被污染的药丸?

  你有一桶果冻,其中有红色、蓝色、绿色三种。闭上眼睛,选出同样颜色的两个。抓取多少个就可以确定你肯定有两个同一颜色的果冻?
...全文
563 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
csuker 2001-08-17
  • 打赏
  • 举报
回复
是因为人的照片是左右长着的。
sharpmark 2001-08-14
  • 打赏
  • 举报
回复
当然不是,我只是在学习,学习,学习,学习,学习,学习,学习,学习……
所以,上网时间少,不好意思。
大家的解法我都看了,解的不错。
我想说的是第二题:当你举左手时,镜子里的人举的相对你仍是左面的手(即他的右手);当你向上抬头时,镜子里的人也向上抬头。其实只是由于面对面的两个人的左右方向上是相反的(参照物不同),而上下方向是相同的,所以不是镜子“会左右颠倒,不会上下颠倒”而是由于参照物的不同而引起的。
其它题于众人无异。
过两天我来结账!
one_add_one 2001-08-14
  • 打赏
  • 举报
回复
to duguran

你怎么还没来?


你不会是把csdn的网址忘记了吧?
one_add_one 2001-08-14
  • 打赏
  • 举报
回复
to yug(寒鹤),roy_hu(roy_hu)
原来在网上看到的,保存下来了!
roy_hu 2001-08-12
  • 打赏
  • 举报
回复
to one_add_one: 你在哪里找到的呀?
现在发现微软真的很喜欢考关于二进制的题目
chinamengnan 2001-08-12
  • 打赏
  • 举报
回复
这些真的是微软面试题吗?
他们脑子坏了吗?会出这么简单的题目?
ljunfa 2001-08-11
  • 打赏
  • 举报
回复
不错!
程序猿1234567 2001-08-11
  • 打赏
  • 举报
回复
第二个问题:
这是由于人们对左右的定义问题。人们在分析镜子中的人的时候,把标准以y轴为轴旋转了180度。本来是后的变成了前,于是左就成为了右。但是由于是以y轴为轴,所以上下不变。
yug 2001-08-11
  • 打赏
  • 举报
回复
呵呵,有意思!
one_add_one()快给分给分(),你在哪儿找来这么多东西啊?
one_add_one 2001-08-11
  • 打赏
  • 举报
回复
第一题:


【断金链难题】

  一位来自阿肯色州的年轻太太格罗丽亚,正在加利福尼亚州旅行.她想在旅馆租用一个房间,租期一周.办事员此时正心绪不佳.办事员:"房费每天20元,要付现钱.格罗丽亚:"很抱歉,先生,我没带现钱.但是我有一根金链,共7节,每节都值20元以上.办事员:"好吧,把金链给我." 格罗丽亚:"现在不能给你.我得请珠宝匠把金链割断,每天给你一节,等到周末我有了现钱再把金链赎回.办事员终于同意了,但格罗丽亚必须决定如何断开金链的方法.格罗丽亚:"我该三思而行,因为珠宝匠是按照他所切割和以后重新连接的节数来索价的.格罗丽亚想了一下,悟到她不必把每一节都割断,因为她可以把一段段金链换进换出,以这种方式来付房费.当她算出需要请珠宝匠割断的节数时,她几乎不能自信.你想一想需要割开多少节?
只需要割开一节.这一节应是从一端数起的第三节.把金链断开成1节,2节,4节这样三段后就能以换进换出的方式每天付给办事员一节作为房费.
啊哈!领悟到下列两点才能解题.第一,至少需要有1节,2节,4节这样三段(即其节数成二重级数的一些段),这样才能以各种不同的组合方式组成1节,2节,3节,4节,5节,6节和7节.我们在药品混乱问题中已经知道,这就是作为二进制记数法基础的幂级数.
第二,只需要割开一节就可以把金链分成符合要求的三段.关于这个问题,若把金链的长度增加,则可以想出一些新的问题.例如,假设格罗丽亚有一根63节的金链,她想把金链割开,以上面那种方式来付63天的房费(价格不变).要达到此种目的只需要割开三节.你想出来了吗?你能否根据金链的不同长度设计一个通用的解题程序,要求分割开的节数为最少?
有一个有趣的变相问题:若所经手的 n 节首尾相连的闭合回路,例如说格罗丽亚有一串金项链,由79节相连而成,若每天房费为一节,试问最少需要分割开几节才能支付79天房费?
所有这些问题都跟二进制记数法有密切的关系.比如格罗丽亚的63节金项链如何分割?只要将63化成二进制表示:等于"111111"即63=1+2+4+8+16+32只要将从第二节开始的两节割开,再将从第八节开始的八节割下来,和从第32节开始的32节割下来即可,这样就有了从1,2,3,4,5,6,直到63的所有节数.一般地,若有 n 节金链, n 是形如 2k-1类型的数,将 n 化成二进制表示,再将所有"1"的位置所代表的2的幂的数相间隔地割开即可达到目的.但是对于其他任意类型的数,却不能奏效,比如对于格罗丽亚的79节金项链,79的二进制记数法表示为"1001111".即79=1+2+4+8+0+0+64,这样从1到15都能表示,可是从16到63都没法表示,我把这个问题做到这里,也一时糊涂起来,但这个问题毕竟不是很复杂,咱们也学一学闵科夫斯基在课堂上口出狂言要解决四色问题的劲头,摸索着来解决一把.咱们可以这样:你不是要求节数最少吗?假设 n=a+b 其中 a 是已经找到的最大的那一节数,b 是比 n 小的已经解决了的金链问题,由于 b 已经解决,因此 b 的拆分能够表示从1,2,3,...b-1,b 的所有金链节数,而再大一些的数就不能够表示了,比如 b+1,所以必须要 a 参加进来,如果 n 是奇数,可令 a=b+1,这样 n=2b+1,所以 b=(n-1)/2,a=(n+1)/2,这样就找到了最大的一节的节数 a ,然后对 b=(n-1)/2继续应用如上的办法,即可解决问题.如果 n 是偶数,可令 a=b ,这样虽然 a 本身不能表示出 b+1,但是可以从 b 的拆分中拿出一个1来(这个1是必须存在的,因为要表示从1,2,3,...b-1,b的所有数)与 a 组成 a+1 也就是 b+1.所以 n=a+b=2a=2b,a=b=n/2.这样也找到了 n 为偶数时最大的一节金链的节数.对于 b 继续如上的过程,就可以找到全部应该断开的金链节数,我算出了从1到15的所有拆分如下:
1=1
2=1+1
3=1+2
4=1+1+2
5=1+1+3
6=1+2+3
7=1+2+4
8=1+1+2+4
9=1+1+2+5
10=1+1+3+5
11=1+1+3+6
12=1+2+3+6
13=1+2+3+7
14=1+2+4+7
15=1+2+4+8
对于上面的格罗丽亚太太的79节金项链,79+1=80,80/2=40,所以最大的一节就是40节,79-40=39,39+1=40,40/2=20,所以第二大的一节就是20节,39-20=19,19+1=20,20/2=10,第三大的一节是10节,19-10=9,9+1=10,10/2=5,又找到了一节是5,9-5=4,4的表示法如上已经列出来了:4=1+1+2.最后得到79节的金项链的分割法:1,1,2,5,10,20,40.过去我也碰到过一道类似的题,是23节金项链,也能够很容易地解决:23+1=24,24/2=12;23-12=11,11=1+1+3+6;所以23的分割法为:1,1,3,6,12.显然,对于2k-1类型的数,用这里的办法与用二进制记数法得出的结果是一致的.
从上面所列出的拆分法可以看出,如果 2k=<n<2k+1,那么 n 一定要用 k+1个数来表示,即: n=a0+a1+a2+...+ak.
可以用数学归纳法很容易地证明这是正确的.那么还有没有比这更少的分割法呢?可以证明没有了.从我们的分析方法中可以看出,这是一个构造性的推理过程,假如还有比这更少的分割法,那么相当于在表达式 n=a0+a1+a2+...+ak.中进行了某些组合,比如将a1+a2合并成新的a1,那么原来的有些组合就表示不出来了,例如a0+a2,就没有办法组合了.当然,一个数的拆分不是唯一的,前面的23节金链还可以分成1,2,3,6,11.你可以试试,这种分割法照样能满足要求.前面的分析中也可以把 (n-1)/2 留下来作为最大的节数,但是这样分出来的节数就不一定都是最少的了,例如把15这样分割,会得到:1,1,2,4,7.虽然能够满足付房费的要求,但是就不是最优解了.最后总结一下,把前面的算法过程公式化可以得到:
k-1 r-1 k-1
n=(n+c0)/2+ ∑ {[n-∑cs2s+cr2r]/2r+1}+[n-∑cr2r]/2k
r=1 s=0 r=0
其中c0,c1,...ck-1等等是1或是0取决于每一步得出的数的奇偶性.其实最后一项等于1,这样可以得出:
k-1
n-2k = ∑cr2r
r=0
a0=(n+c0)/2

i-1
ai=[n-∑cs2s+ci2i]/2i+1 1 (i=1,2,3,...k-1)
s=0

ak=1
one_add_one 2001-08-11
  • 打赏
  • 举报
回复
第一题:


【泡泡糖问题】

可怜的琼斯夫人路过泡泡糖出售机时,尽量不使她的双胞胎儿子有所察觉.
大儿子:"妈妈,我要泡泡糖."
二儿子:"妈妈,我也要,我要和比利拿一样颜色的."
分币泡泡糖出售机几乎空了,里面只有4粒白色的和6粒红色的泡泡糖.说不准下一粒是什么颜色.琼斯夫人如果要得到两粒同种颜色的泡泡糖,需要准备花多少钱?
是不是琼斯夫人需要花6分钱,准可以得到2粒红色的糖----就算所有白色的糖花去4分钱,还有两分钱可以买到2粒红色的糖.或者她花去8分钱准可得到2粒白色的糖,所以她需要花8分钱是吗?如果你这样算,那就错了,因为琼斯夫人并不要求必须得到两粒红色的糖或者两粒白色的糖,她只要求两粒同色的糖,即使先取到两粒不同色的糖,第三粒必定与前两粒中的一粒同色.所以她最多只需要花3分钱.
如果出售机内有6粒红色的,4粒白色的,5粒蓝色的.琼斯夫人最多要花多少钱?显然只要花4分钱即可.
如果琼斯夫人的孩子是三胞胎,那该怎样呢?最坏的情况是她拿到了2粒红的,2粒白的和2粒兰的,第七粒肯定与前六粒中的两粒同色,所以她最多需要花7分钱.
如果只有一粒蓝色的泡泡糖,那么显然只要花6分钱即可买到三粒同色的糖.
假如琼斯夫人是幼儿园的老师,她带着 k 个孩子路过泡泡糖出售机,出售机中有 n 组同色的泡泡糖,且每组糖至少有 k 粒,她需要花多少钱呢?
最坏情况是她每种颜色的泡泡糖都买了 k-1 粒,那么再买一粒即可,所以她最多需要花 n(k-1)+1 分钱.
如果 n 组糖中有一组或几组同色的糖少于 k 粒,又是什么情况呢?
让我们假设有 m 组同色的泡泡糖少于 k 粒,并且设其中第 i 组糖有 ai 粒,那么琼斯夫人最倒霉的事情是,她把所有少于 k 粒的同色糖都买了,并且其他种类的糖每种都买了 k-1 粒,最后再买一粒才能得到 k 粒同色的糖.所以她最多需要花:
m
(n-m)(k-1)+1+∑ai
i=1
分钱.
这种类型的题目很多,又比如从52张纸牌中抽出7张同花的牌,那么最多需要抽多少张牌呢?显然需要 4(7-1)+1=25 张.
one_add_one 2001-08-11
  • 打赏
  • 举报
回复
第三题是个著名的数学问题


【药品混乱问题】

  一家药店收到运来的某种药品十瓶。每瓶装药丸1000粒。药剂师怀特先生刚把药瓶送上架子,一封电报接踵而来。怀特先生把电报念给药店经理布莱克小姐听。
怀特先生:“特急!所有药瓶须检查后方能出售。由于失误,其中有一瓶药丸每粒超重10毫克。请即退回分量有误的那瓶药。怀特先生很气恼。
怀特先生:“倒霉极了,我只好从每瓶中取出一粒来秤一下。真是胡闹。
怀特先生刚要动手,布莱克小姐拦住了他。布莱克小姐:“等一下,没必要秤十次,只需秤一次就够了。这怎么可能呢?
布莱克小姐的妙主意是从第一瓶中取出1粒,从第二瓶中取出2粒,第三瓶中取出3粒,以此类推,直至从第十瓶中取出10粒。把这55粒药丸放在秤上,记下总重量。如果重5510毫克,也就是超过规格10毫克,她当即明白其中只有一粒是超重的,并且是从第一瓶中取出的。
如果总重量超过规格20毫克,则其中有2粒超重,并且是从第二瓶中取出的,以此类推进行判断。所以布莱克小姐只要秤一次,不是吗?
六个月后,药店又收到此种药品十瓶。一封加急电报又接踵而至,指出发生了一个更糟糕的错误。
这一次,对超重药丸的瓶数无可奉告。怀特先生气恼极了。怀特先生:“布莱克小姐,怎么办?我们上次的方法不中用了。布莱克小姐没有立即回答,她在思索这个问题。
布莱克小姐:“不错。但如果把那个方法改变一下,我们仍然只需秤一次就能把分量有误的药品识别出来。这回布莱克小姐又有什么好主意?
在第一个秤药丸问题中,我们知道只有一瓶药丸超重。从每瓶中取出不同数目的药丸(最简单的方式就是采用计数序列),我们就可使一组数字和一组药瓶成为一一对应的关系。
为了解决第二个问题,我们必须用一个数字序列把每瓶药单独标上某个数字,且此序列中的每一个子集必须有一个单独的和。有没有这样的序列?有的,最简单的就是下列二重序列:1,2,4,8,16,。。。这些数字是2的连续次幂,这一序列为二进制记数法奠定了基础。
在这个问题中,解法是把药瓶排成一行,从第一瓶中取出1粒,从第二瓶中取出2粒,从第三瓶中取出4粒,以此类推。取出的药丸放在秤上秤一下。假设总重量超重270毫克,由于每粒分量有误的药丸超重10毫克,所以我们把270除以10,得到27,即为超重药丸的粒数。把27化成二进制数:11011。在11011中自右至左,第一,二,四,五位上的“1”表示其权值分别为1,2,8,16。因此分量有误的药瓶是第一,二,四,五瓶。
在由2的幂组成的集合中,每个正整数是单一的不同组合中的元素之和。鉴于这一事实,二进制记数法极为有用。在计算机科学和大量应用数学领域中,二进制记数法是必不可少的。在趣味数学方面,同样也有难以计数的应用。
这里有一个简单的扑克魔术,可叫你的朋友莫名其妙。这个戏法也许看上去与药瓶问题毫无关系,但他们的依据是相同的,都是二进制原理。
请别人把一副牌洗过,然后放进你的口袋,再请人说出一个1至15以内的数字。然后你把手插进你的口袋里,一伸手就取出一组牌,其数值相加正好等于他所说的数字。
此秘密简单的很。在耍魔术之前,预先取出A,2,4,8各一张放入口袋。这副牌缺少区区四张,不大可能为人察觉。洗过的牌放入口袋后,暗中将其排置于原先已经放在口袋中的四张牌的后面。请别人说出一个数字,你用心算将此数表示成2的幂的和。如果是10,那你就应想到:8+2=10,随即伸手入袋,取出2和8的牌示众。
卜算卡片的依据也是二进制原理,准备六张卡片,分别记为A,B,C,D,E,F。然后将一些数字填写在卡片上,确定每张卡片上的数字集合的规则是这样的:在一个数的二进制表示中,若右起第一位是“1”,则此数字就在卡片A上。该卡片上的数字集合自1起始,全部数字就是1至63范围内所有的奇数;卡片B则包括1至63范围内的二进制记数法中右起第二位为“1”的全部数字;卡片C包括1至63范围内的二进制记数法中右起第三位为“1”的全部数字;卡片D,E,F以此类推。注意:63这个数字的二进制记数法是“111111”,每一位都是“1”,因此每张卡片上都有这个数字。
这六张卡片可以用来确定1至63范围内的任意一个数字。请一位观众想好此范围内的一个数字(例如某个人的年龄),然后请他把所有上面有此数字的卡片都交给你。你随即说出他心中所想的那个数字。秘诀就是把每张卡片上2的幂的第一个数字相加。例如,如果把卡片C和F交给你,你只要将上面第一个数字4和32相加,便知道别人心中所想的数字是36。
有时,魔术师为了使得这个戏法显得更加玄妙,故意把每张卡片涂上各种不同的颜色。他只需记住每种颜色所代表的2的幂。例如,红卡片代表1,橙卡片代表2,黄卡片代表4,绿卡片代表8,兰卡片代表16,紫卡片代表32(可依据彩虹的诸色顺序)于是,魔术师站在大房间的一头,请人想好一个数字,并且把上面有此数字的卡片置于身旁,他即可根据那人身旁的卡片的颜色随口说出别人心中所想的数字。
javan 2001-08-11
  • 打赏
  • 举报
回复
分别在A,B,C,D里取出1,2,3,4个药丸。一共10个药丸一起称得到重量Y,求出Y除以10的余数X
如果X=1,则A是被污染。
如果X=2,则B是被污染
如果X=3,则C是被污染
如果X=4,则D是被污染.
one_add_one 2001-08-11
  • 打赏
  • 举报
回复
3:从四个罐子分别取1、2、3、4个称
如果
重1,是第1个罐子
重2,是第2个罐子
重3,是第3个罐子
重4,是第4个罐子
one_add_one 2001-08-11
  • 打赏
  • 举报
回复
4:4个。
one_add_one 2001-08-11
  • 打赏
  • 举报
回复
1:1、2、4。
2:两眼的连线与镜子的方向是垂直的。
panq 2001-08-11
  • 打赏
  • 举报
回复
一根金条
7段 分为 1;2;4的比例
第一天给1/7,
第二天给2/7,工人还出1/7
第三天再给1/7,工人达到3/7
第四天给4/7,工人还出1/7和2/7
第五天给1/7
第六天给2/7,工人还出1/7
第七天给1/7

一个镜子这是物理问题,光线的反射决定了一切.你的左手举起,镜子中相对应的必然是与你的左手同位置,脑袋也是一样的.

对于药丸 污染的药丸的重量是正常药丸重量+1 是指是正常药丸重量的两倍,还是一个重量单位?
请教.

果冻问题,4个就肯定有两个同一颜色的果冻.
Zig 2001-08-11
  • 打赏
  • 举报
回复
1 切成三段,1,2,4
然后带找钱得就可以了。
windindance 2001-08-11
  • 打赏
  • 举报
回复
这么简单——我小学的竞赛题:)
sharpmark 2001-08-11
  • 打赏
  • 举报
回复
to:zig
第一题说得明白些,
加载更多回复(1)
C++笔试题 Sony笔试题 几道题目及自做答案 北电 普天C++笔试题 我所收集的intel比试题 面试题 2005年腾讯招聘 微软 微软亚洲技术支持中心面试题目 微创笔试题目(微创,微软在中国的合资公司) Intel笔试面试题目 IBM 社会招聘笔试题 宝洁公司(P&G)面试题目 飞利浦笔试试题 阿尔卡特(中国)的面试题目 Google 戴尔 意法半导体软件试题 Sony笔试题 华为笔试题 华为 华为全套完整试题 慧通 华为面试题 大唐电信 大唐面试试题 网通笔试题 东信笔试题目 中软融鑫笔试题 Delphi笔试题目 EE笔试试题 软件笔试题 Hongkong Bank笔试题 A.T. Keaney笔试题 Shell company笔试题 KPMG笔试题 香港电信笔试题 LORAL的笔试题 维尔VERITAS软件笔试题 百威啤酒(武汉公司) 星巴克 凹凸电子软件笔试题 友立资讯笔试题目 Avant! 微电子EE笔试题 德勤笔试题 扬智(科技)笔试题目 高通笔试题 威盛笔试试题 2003 EE笔试题目 2003 Graphic笔试题目 汉王笔试题 北京信威通信技术股份有限公司面试题 中国国际金融有限公司CICC笔试题 国泰君安笔试题 广东北电面试题目 广州本田笔试题 明基面试问题 网易 广州日报 下面有些题也不错,可以参考 联想笔试题 普天C++笔试题 Sony笔试题 微软亚洲技术中心的面试题 MSRA Interview Written Exam(December 2003,Time:2.5 Hours) 百度笔试题 汉略曾考的测试题目 16道C语言面试题例子 死循环(Infinite loops) 数据声明(Data declarations) 位操作(Bit manipulation) 访问固定的内存位置(Accessing fixed memory locations) 中断(Interrupts) 代码例子(Code examples) 13. 评价下面的代码片断 动态内存分配(Dynamic memory allocation) 群硕笔试 基础题 笔试博朗 - [笔试 职业] C语言面试题大汇总 思科 慧通 雅虎笔试题(字符串操作) C语言最长平台算法 华为3COM C语言题库 将两个无序数组合并为有序链表 上海聚力传媒技术有限公司官方VC笔试题解答
昨日,11.19,最新整理了,第61-80题,现在公布上传。 另加上之前公布的第1-60 题,在此做一次汇总上传,以飨各位。 可以这么说,绝大部分的面试题,都是这100 道题系列的翻版, 此微软等公司数据结构+算法面试100 题系列,是极具代表性的经典面试题。 而,对你更重要的是,我自个还提供了答案下载,提供思路,呵。 所以,这份资料+答案,在网上是独一无二的。 ------------------------------------ 整理资源,下载地址: 答案系列: 1.[最新答案V0.3 版]微软等数据结构+算法面试100 题[第21-40 题答案] http://download.csdn.net/source/2832862 2.[答案V0.2 版]精选微软数据结构+算法面试100 题[前20 题]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1 版本,进行的校正与修正。 3.[答案V0.1 版]精选微软数据结构+算法面试100 题[前25 题] http://download.csdn.net/source/2796735 题目系列: 4.[第一部分]精选微软等公司数据结构+算法经典面试100 题[1-40 题] http://download.csdn.net/source/2778852 5.[第1 题-60 题汇总]微软等数据结构+算法面试100 题 http://download.csdn.net/source/2826690 更多资源,下载地址: http://v_july_v.download.csdn.net/ 若你对以上任何题目或任何答案,有任何问题,欢迎联系我: My E-mail: zhoulei0907@yahoo.cn ------------- 作者声明: 本人July 对以上公布的所有任何题目或资源享有版权。转载以上公布的任何一题, 或上传百度文库资源,请注明出处,及作者我本人。 向你的厚道致敬。谢谢。 ---July、2010 年11 月20 日。 ------------------------------------------------------ 各位,若对以上100题任何一道,或对已上传的任何一题的答案, 有任何问题,请把你的思路、想法,回复到此帖子上, 微软等100题系列,永久维护地址(2010年11.26日): http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧