程序员面试智力题

来源:互联网 发布:圣诞布置 知乎 编辑:程序博客网 时间:2024/05/16 07:14

1.扑克牌问题

问题:一付54张扑克牌,其中有十张是翻过来的。现在把你的眼睛蒙上(绝对没有偷看的可能),让你把扑克牌分成两叠(两叠的多少可以不一样)。要求在两叠中翻过来的扑克牌是相等的。请问该怎么做?除了扑克牌的数目,其它因数(扑克牌大小,重量,颜色,表面触摸的感觉,等等)不参与题目之中。扑克牌可以任意次重新排序、翻转。10张翻过来的扑克牌是随机分布在扑克牌中。

答案:第一步,你在这54张牌中任意取出10张,现在,扑克牌分成了两叠。44张和10张;第二步,44张那叠不动,将10张这叠每张都翻过来,便得到了符合条件的两叠牌。

解释:第一步之后,设44张那叠中正面牌x张,10张那叠中正面牌则为10-x张。第二步之后,44张那叠中正面牌保持x张,10张那叠反过来了:反面牌为10-x张,正面牌x张。

2.分金条问题

问题:有个商人雇用了一位手艺高超的工匠了为他做一个精致产品,工作一星期七天的代价是一条金条。商人手头上有一条金条,刚好有可以付工匠一星期的工钱。但工匠要求工钱要按每天来付。虽然他并不急着用钱,每天有钱进账,老人心里总是踏实一些。但商人家中有个规矩,金条每星期只能切二刀。后来商人想出以了个切割金条的办法,满足了工匠的要求。你知道商人是怎么切割金条才能满足工匠的吗?

答案:切成1、2、4。

解释:这三个二进制数的组合能表示0-7中的任何一个。

3. 送花瓶

问题:古时候有一位商人要让伙计将一个精致的花瓶送到买主的手里。买主住在很远的地方,路途中间要经过土匪出没的地方。土匪要是见到花瓶就会抢走。但土匪不会打开锁着的东西,只要把花瓶锁在箱子里就可以安全地送到目的地(这土匪看起来还很文明)。所以商人准备了一个大箱子,在箱子上装了个很大很结实的的锁扣,足以挂几把锁。商人还准备了一把精致的铁锁将花瓶锁在箱子里。这把铁锁的钥匙是独一无二的,没有这把钥匙,按照当时的技术箱子是绝对打不开的。但问题来了,土匪只要见到钥匙就会没收。钥匙都是没法安全地送到买主的手里的。买主也不能把自己的锁送给卖主用。在几经周折后,买主终于得到了他心爱的花瓶。请问这花瓶是如何送到买主的手里的?

这是一个故事,但故事里的技术是实在的,也确实运用到了如今的高科技中。在互联网中怎样将信息安全地送到目的地而不被黑客在中途截获,也是成功地运用了类似的方法。你知道故事的答案吗?

答案:1)、把花瓶锁在箱子里(这把锁只有商人能开,称为“锁1“),然后运到买主手里。2)、买主收到箱子后,在箱子上再加上自己的锁(这把锁只有买主能开,称为“锁2“),然后把箱子运回给商人。3)、商人收到箱子后,把锁1找开拿走,这时候箱子上只剩下锁2,然后把箱子运给买言。4)、买主收到箱子后, 打开锁2,就成功拿到花瓶。

4.切蛋糕

问题描述:有一个长方形的蛋糕,中间已被挖去了一个长方形的坑。这长方形的坑不在蛋糕的中央,也不与蛋糕的周边平行。两位小朋友想平分这个蛋糕,请问如何一刀将但蛋糕分成两个体积相等的部分?条件:只能切直的一刀,而且不能拦腰将蛋糕分成上下两个部分(因为蛋糕上面有好吃的糖果。


答案:沿着两个矩形的中心连线切下去即可。

解释:两份蛋糕图形的面积相等,都等于大矩形面积的一半减去小矩形面积的一半。

5.iPhone 四位数密码

问题描述:一个朋友打开了他的iPhone,我一把把它抓过来说:‘嗯,9、6、0,和1,对吧?’。因为有浓重的手指印在这四个数字上面,我正确地推定这与他的密码相关。他吓了一跳,因为如果我是一个贼,我可以很容易解开他的电话。因为所有的四个数字在四位数字代码中只有一次出现(据我所知,这只有4 x 3 x 2 x 1 = 24种可能)。因而,取四个不同数字作代码不是非常安全的。所以,当我设定密码时,我选择了重复的数字(如1-2-3-1)。这样一来,如果有人会看我的手机,即使他们能够探测到我的手指印,他们要么在猜想第四个数字(不存在),或者,他们如果弄清楚我只用三个独立数字,他们将不得不尝试在一个四位数代码中,列出这三个不同数字所有可能的排列。问题是:1.在一个四位数的代码中,只使用三个数字对安全是否确实有帮助?2.如果只重复使用两个独立的数字会不会更好呢?

答案:用三个数字最安全,两个数字最不安全,四个数字居中。

解释:1)、4个位置不同时,排列数=4*3*2*1=24;2)、3个位置不同时,排列数=C(4,2)*2*3=36;3)、2个位置不同时,排列数=3个重复情况(4+4)+两两重复情况(6)=14。

6. 书有多少页

问题描述:一本书有N页厚。书的页数是从1 到N。所知道的是,所有的页数总共用了1095个数码字。请问这本书有多少页?

答案:401页

解释:有9页个位数的书页,每页用一个数码字。90页两位数的书页,每页用2个数码字。首先假设没有四位数的书页,而三位数书页的数目为x。因为总共用了1095个数字,所以列出x的方程:9+2*90+3*x=1095。解出x=302,总的书页数=302+9+90=401。

7. 左轮枪

问题描述:某公司招聘员工面试时提的问题:“让我们来玩个游戏”,招聘人开始了。“你现在被牢牢地绑在椅子上不能动。这是一把枪,一把六星左轮抢,六个弹槽都空着。现在,我把两颗子弹装入弹槽。看到我把子弹装入两个相邻的弹槽了吗?我把轮子合上,然后用手拨动让轮子转动几圈。我把枪对着你的头,扣动了扳机,…,叭。你真幸运!第一枪撞针没打中子弹。然后,我要再扣一次扳机。”招聘人接着说:“我可以直接扣动扳机,或旋转轮子一下再扣扳机,你可以选择其中一种,请问,你选哪一种方法呢?”庆幸的是这只是一把想象中的枪。招聘人只是用手势做出旋转轮子和扣动扳机的样子。但不幸的是你的前程却掌握在挥舞着‘手枪’的家伙的手里。 当然,这两种方法都不是你要的,但其中一种方法的生存的机会会大一些。你到底应该选择哪一种方法呢?


答案:选择‘不转’,因为被打死的概率更小。

解释:题中说:子弹是装入两个相邻的弹槽,左轮枪是一格一格往下转的,如右图所示。1) 第一枪没有打出子弹,因此,第一枪的位置只可能是A、B、C、D。那么,接连第二枪的位置就会是第一枪的下面一个,也就是:B、C、D、E,这4个位置中,只有E有子弹。所以,如果直接扣动扳机,几率=1/4。2) 如果重新把轮子转一下,左轮枪将处于随机的位置,6个格子有2颗子弹,这时挨枪的机率为2/6=1/3。3.)1/4 <1/3,‘不转’死的几率更小。

8.导火索

问题描述:有两根导火索,它们的长度都是正好1分钟烧完。但是它们燃烧的速度是不均匀的。也就是说,你不能用一小段的长度与总长度的比值来确定燃烧完这一小段的时间。用这两根导火索和一只打火机,没有其它计时器的帮助,请你给我报告两次时间信号:开始的时间t1、结束的时间t2。时间t1和t2准确地相差45秒。

答案:将其中一根的两头,以及另一根的一头,同时点燃,这个时刻定为t1。当第一根烧完时,立即后点燃第二根的另一端,第二根烧完的时刻便是t2。

解释:见下图:第一根两头点燃,直到烧完,时间是30秒。这时第二根也烧了30秒,因第二根只点了一端,因而只烧完了一半时间,剩下的部分还能烧30秒,这时马上点燃它的另一端,变成从两头同时烧,因而烧完的时间是15 秒,加上开始的30秒,总共历时45秒。


9.计时沙漏

问题描述:沙漏(hourglass)是最早使用的计时仪器之一。如下图(a)中所示的沙漏,是上下对称的,可以倒来倒去地计时。比如说,如果有一个2分钟的沙漏,你便可以漏一次得到2分钟,漏完后立即倒过来,再漏完,总共得到4分钟的时间。


现在,给你一个4分钟的沙漏,和一个7分钟的沙漏,它们都是可以倒来倒去的对称沙漏。如何将它们配合使用,才能得到准确的、从开始到结束总共9分钟的时间?

用图形,我们可以更方便地说明这个问题。一个沙漏某时刻的状态可以用上下重叠的两个带数字的方格表示,例如,上图(b)所表示的是7分钟沙漏的初始状态和漏了2分钟后的状态。上图中的(c)则是要请你回答的问题。


解释:设7分钟的沙漏为A,4分钟的为B,A,B同时漏,4分钟后, 状态为 (A : 3,4);( B:0,4);B倒过来, 3分钟A漏完全后, 状态为(A : 0,7); (B:1,3);A倒过来, 1分钟B漏完全后, 状态为(A : 1,6); (B:0,4),A倒过来, 1分钟后,状态为(A : 0,7);

10. 测量砖头的对角线

问题描述:单凭三个砖块和一把尺子,不使用任何公式,怎样才能测量一个砖头的立体对角线?就是穿过砖头内部的那条对角线。

答案:将三块砖头如图迭起来,就可测量。


11.电路

问题描述:12个电阻连成一个正立方体,正方体的每一条棱上有一个1欧姆的电阻,请你求出A和E之间的等效电阻。

答案:5/6。

解释:解此题的巧妙之处是在于利用对称性,和电学的一丁点儿基础概念,否则……见下左图,三个红点的电位应该相同,三个绿点的电位也应该相同。电位相同的点等效于连在一起。下图中,左、右的电路是互相等效的,因此:R = 1/3 + 1/6 + 1/3,R = 5/6。


12.方格子

问题描述:有一张8×8=64个格子的格子纸,右上角和左下角各被剪去一格,如图左所示:女儿有31张长方形的卡片(中图),每张刚好是两个格子。女儿想:剪掉了两个角的格子纸面积和31张卡片总面积一样大,因此,她想用卡片作拼图,把格子纸盖起来,但她拼来拼去都不成功,你能帮帮她吗?或者……

答案:不可能覆盖起来。

解释:不是面积相等就能覆盖的!女儿难不倒将军。不过,8岁的女儿不懂高深的数学,将军想了一个巧妙的方法解释给她听。他将8×8的格子纸涂成黑白相间的国际象棋棋盘(下左图),又举了2×2方格纸剪去两角为例。看下面右图,剪去的两个小方块都是黑色的,剩下两个白方块处于对角的位置,怎么可能被一个黑白的卡片覆盖呢?图中一目了然,小女儿很快就明白了。


13.毒药老鼠

问题描述:有100只一模一样的瓶子,编号1-100。其中99瓶是水,一瓶是看起来像水的毒药。只要老鼠喝下一小口毒药,一天后则死亡。现在,你有7只老鼠和一天的时间,如何检验出哪个号码瓶子里是毒药?

答案:首先,将瓶子的10进制编号数改成7位的2进制码。然后,让第1只老鼠喝所有2进制码第1位是1的瓶子中的水;让第2只老鼠喝所有2进制码第2位是1的瓶子中的水;以此类推下去。这样,每个老鼠第二天的死活情况就决定了毒水瓶子二进制码这一位的数字:老鼠死,对应1,反之为0。

这儿把它叫做‘问题1’,解决此题的方法可谓二进制应用的经典:

首先,将瓶子的10进制编号数改成7位的2进制码。然后,让第1只老鼠喝所有2进制码第1位是1的瓶子中的水;让第2只老鼠喝所有2进制码第2位是1的瓶子中的水;以此类推下去。这样,每个老鼠第二天的死活情况就决定了毒水瓶子二进制码这一位的数字:老鼠死,对应1,反之为0。换言之,将7只老鼠死活情况排成一排。比如说结果是“死活死死活活死”的话,毒水瓶子的二进制标签就是:1011001,转换成10进制,得到89。

14.为什么下水道的盖子是圆的?

参考答案:

<span style="font-size:18px;">主考官认为的最好回答是:正方形的盖子容易掉到洞里去。想一想,如果盖子真掉进去的话,那么不是发生伤人事故,就是盖子会掉到水里。为什么正方形的盖子容易掉下去呢?这是因为正方形的对角线是其边长的约1.414倍。如果把一个正方形盖子垂直地立起来,稍微一转,它就会很容易掉到下水道里去。与此相反,圆的直径都是等长的,这使它很难掉进去。 一种诙谐回答是:下水道的洞口是圆形的,盖子当然也应该是圆的。那么为什么下水道的洞口是圆形的?答案是因为圆形的洞比方形的洞好挖。 还有另外一种答案:在进行短距离搬运时,圆形的盖子可以很方便地通过滚动的方法来搬运,而方形的盖子就不容易搬运,你需要借助手推车或者由两个人抬着走。再有一点就是用圆形盖子盖住洞口时,不需要怎么调整就可以与洞口严丝合缝。 这个问题恐怕是微软最为有名的面试问题了。由于“曝光率”太高,微软在面试中已经停止使用这个问题了。</span>

15.美国有多少辆加油站(汽车)?

参考答案:

这个乍看让人有些摸不着头脑的问题时,你可能要从问这个国家有多少小 汽车入手。面试者也许会告诉你这个数字,但也有可能说:"我不知道,你来告诉 我。"那么,你对自己说,美国的人口是2.75亿。你可以猜测,如果平均每个家庭 (包括单身)的规模是2.5人,你的计算机会告诉你,共有1.1亿个家庭。你回忆起 在什么地方听说过,平均每个家庭拥有1.8辆小汽车,那么美国大约会有1.98亿辆 小汽车。接着,只要你算出替1.98亿辆小汽车服务需要多少加油站,你就把问题解 决了。重要的不是加油站的数字,而是你得出这个数字的方法。

16.距离问题

有一辆火车以每小时15公里的速度离开洛杉矶直奔纽约,另一辆火车以第 小时20公里的速度从纽约开往洛杉矶。如果有一只鸟,以外30公里每小时的速度和 两辆火车现时启动,从洛杉矶出发,碰到另辆车后返回,依次在两辆火车来回的飞 行,直道两面辆火车相遇,请问,这只小鸟飞行了多长距离?

参考答案:答案很容易计算的: 假设洛杉矶到纽约的距离为s 那小鸟飞行的距离就是(s/(15+20))*30。

17.概率问题

你有两个罐子,50个红色弹球,50个蓝色弹球,随机选出一个罐子,随机 选取出一个弹球放入罐子,怎么给红色弹球最大的选中机会?在你的计划中,得到 红球的准确几率是多少?

参考答案:一个罐子放一个红球,另一个罐子放49个红球和50个蓝球,概率接近75%.这是所能达到的最大概率了。实际上,只要一个罐子放<50个红球,不放篮球,另一个罐子放剩下的球,拿出红球的概率就大于50%

无答案,看你有没有魄力坚持自己的意见。 

18.重量问题

你有四人装药丸的罐子,每个药丸都有一定的重量,被污染的药丸是没被 污染的重量+1.只称量一次,如何判断哪个罐子的药被污染了?

参考答案:从第一盒中取出一颗,第二盒中取出2 颗,第三盒中取出三颗。 依次类推,称其总量。再根据总重量增加多少判断污染的药罐。

19.4夸脱的水问题

如果你有无穷多的水,一个3夸脱的和一个5夸脱的提桶,你如何准确称出 4夸脱的水?

参考答案:

  1. 先用3 夸脱的桶装满,倒入5 夸脱。以下简称3->5) 在5 夸脱桶中做好标记b1,简称b1)。 
  2. 用3 继续装水倒满5 空3 将5 中水倒入3 直到b1 在3 中做标记b2 
  3. 用5 继续装水倒满3 空5 将3 中水倒入5 直到b2 
  4. 空3 将5 中水倒入3 标记为b3 
  5. 装满5 空3 将5 中水倒入3 直到3 中水到b3
  6.  结束了,现在5 中水为标准的4 夸脱水。
原文地址:http://blog.csdn.net/songzitea/article/details/8797424
0 0