3道有意思的逻辑思维面试题

3道有意思的逻辑思维面试题,第1张

从小到大做了无数道智力题,工作之后接触到程序员逻辑思维面试题,也曾经饶有兴致的研究过。这些智力题,表面上是考智力水平,实际上是考察逻辑思维能力,而从更一般的意义而言,是在考察解决问题的能力。

一个人学习、研究、工作,其实无时无刻不是在训练或使用解决问题的能力。解决问题的能力,在我看来,有很多方面,其中很重要的一方面就是逻辑思维能力。很多人对于逻辑思维的理解是存在误区的,总以为逻辑思维只是理科生和工程师用的东西,与文科生甚至普通人没有什么关系。而实际上, 逻辑思维所涉及的范围远远不止以数学为基础的理工科,而是一种涵盖各种学科、各种工作的通识能力 。

比如说,大学学文科专业的罗振宇,几年前开了一个节目叫“罗辑思维”,强调用逻辑思维来理解世界,节目的内容涉及社会、历史、经济、人文、理工等各方面,俘获了几百万乃至上千万的粉丝。后来罗打造得到APP成为最知名的知识付费应用,就是以罗辑思维这个品牌栏目为底子做的。

最近看了一些大的科技公司(比如谷歌、微软等)等招聘员工的面试题,很有意思,在这里与大家分享,并共同探讨。

这是微软非常知名的一道面试题,曾经难倒无数学霸才子:不是说好的考程序题或者智力题吗,怎么来了一个社会基础建设问题?

为什么是圆的?方的不行吗?圆的究竟优势在哪里?

这就是在考察面试者的逻辑思维了。其实认真思考之后,不难得出“标准答案”:

如果面试者能够这样回答,说明他的逻辑思维不错,或者至少生活经验比较丰富。

那么这是唯一的正确答案吗?没有这么简单。我从一些优秀者的回答中,还发现了其它也很有道理的答案:

如果面试者能够在所谓“标准答案”的基础上,多给出几个原因,那么说明不仅逻辑思维很好,工程思维也非常棒,善于运用生活中的知识。这道题基本上给考官的印象应该是满分了。

但是,关于这道题的讨论并非到此为止。 下水道井盖一定是圆的吗?有没有可能是方的或者其它形状的?

传说有一位面试者,在被问到该问题的时候,坚持说也可以用方的井盖,并给出了合理的理由,最终成功说服了考官。下面是传说的面试过程:

这位面试者不仅逻辑思维和工程经验丰富,说服人的能力也非常强,让考官觉得他是不可多得的人才,被推荐到更需要综合技能的销售部门工作。

其实,像这样的逻辑思维面试题并没有所谓的标准答案,考官的真实目的是 考察面试者的逻辑思维能力 ,更一般的讲,是 解决问题的能力 。下水道盖也可以是方的,只要你能给出合理的理由,自圆其说。

这是Google的一道面试题:

有一栋100层高的大楼,给你两个完全相同的玻璃球。假设从某一层开始,丢下玻璃球会摔碎。那么怎么利用手中的两个球,用什么最优策略知道这个临界的层是第几层?

最笨的办法谁都能想到:

可是这个办法,最坏的情况下要试99次,平均意义上要试49次。而且只用了一个球,另一个球没利用上。显然不是最优的策略。

计算机专业的学生很容易想到更高级的办法——二分法。具体是:

用这种方法,需要log100,也就是大约7次,能够找到答案。

面试者如果能这样回答,说明对计算机专业基本算法是有了解的。但是,仔细想想,这个方法对吗?

这个方法显然是有毛病的。比如说我举一个反例,第10层是临界层的情况。按照二分法来执行,第一次试验第50层将摔碎,第二次试验第25层又将摔碎,此时两个玻璃球都摔碎了,将没有办法继续进行试验!

注意最多有两个球,也就是最多可以摔碎两次。尽管上述二分法不可行,我们是否可以借鉴其思路,先大致确定一个小的范围,然后逐个试验呢?根据这样的思路,可以提出下面的方法:

这种方法最坏的情况出现在临界层为100时,将需要试验10+10=20次;最好的情况出现在临界层为2时,只需要试验2次。而平均意义上大约需要试验10次。怎么样,是不是有效的利用了两个球呢?

按照吴军老师的说法,这种解题方法其实体现了 一种典型的工程思维:粗调和精调 。其中第一个球用于粗调,确定一个大致的范围;第二个球用于精调,在大致的范围内确定精确的值。

其实,粗调和精调的工程思维在生活和工程中都很常见:

从这几个例子,我们可以对粗调和精调的优点及注意事项进行简单的总结:

了解了粗调和精调的概念之后,我们回过头来,再次考察这道玻璃球题目。如果有3个玻璃球呢,是否有更好的方法?

当然是有的,标准的答案是采取三步试验:

细心的读者会发现,这三步试验分别把答案的可能范围缩小了4、4、5倍,最终确定了答案。

为什么是这几个数呢?而且,回过头来想想,为什么两个小球的情况下,两步试验缩小的范围分别是10、10呢?

这几个数的选择,当然绝非巧合。实际上,2个和3个玻璃球的情况下,缩小倍数分别是按照根号下100(也就是10)、3次根号下100(大约是5)来选择的。 推广到n个玻璃球的情况下,每步试验的范围缩小倍数应该是n次根号下100。 具体证明,我们在这里不做讨论。

这绝不仅仅是一个小小的逻辑题, 考官想考察的是面试者的逻辑思维,包括工程思想、分析能力以及举一反三的归纳概括能力 。知道标准答案不算什么,吃透这道题并弄清背后的深刻原理,才是本事。

这道题相对前两道来说要简单一些。据说Google过去面试产品经理的时候会问到这个问题。什么数据都不给,直接就这么问。

有些中国面试者可能不乐意了:你又不告诉我高尔夫球多大,也不告诉我这个房间的尺寸,什么数据都没有,我怎么算啊?

但是这个题没错,考官考察的就是不给数据你怎么计算!要不然小学生都能算出来了。

有些人一看没给数据,可能就会胡猜:一间普通办公室,又不是很大,高尔夫球直径大概几厘米,直观感觉应该能装几千个或者几万个吧?

然而答案恰恰违反我们的直觉:至少能装几十万个,甚至能装上百万个。

我们来算算:

一个房间竟然能装这么多高尔夫球?是不是大的出乎我们的意料呢?

有人可能会怀疑,这道题如此简单,小学生都能做,侮辱人智商吗?然而这道题实际考察的,是我们解决问题的方式。Google对产品经理的要求是:

有的面试者在没给数据的情况下可能会根据直觉乱猜,这是做事的大忌,因为很多东西其实是反直觉的,乱猜可能导致完全错误的结论,这是很危险的。最准确的做法是拿工具量一下会议室的长宽高以及高尔夫球的直径,然后进行计算。不过,在没有准确数据的情况下,合理的估算也是可行的,甚至也是必要的,估算能够帮助我们大致知道答案的范围,这在很多情况下已经足够支持决策!

这里说的逻辑思维题不是纯计算机的逻辑思维,而是一些优点类似于智力测验的题,但这些东西很多在网上都是有原题的,很容易就复习了,那为什么计算机公司还要去考呢?是赶时髦和国外的计算机公司学习,还是真的可以考察出应聘者的逻辑思维能力?题如:假设有一个池塘,里面有无穷多的水。现有2个空水壶,容积分别为5 升和6 升。问题是如何只用这2个水壶从池塘里取得3 升的水。

源妹儿最近看到有小伙伴咨询银行的信息 科技 岗问题,所以,源妹儿 这两天看了很多银行信息 科技 岗的帖子,也问了很多已经在岗的小伙伴,总结了他们的经验,给大家整理了关于 银行的信息 科技 岗 的一些大家比较关心问题

互联网大厂工资高,但也不是那么好进的,这两年内卷越来越严重,想进大厂也越来越难。

而银行的信息 科技 岗难度则会小很多,工资也还说得过去,并且工作相对稳定,很少会裁员,但可能会对学历有一定要求(相比于互联网公司)

下面先来看几个问题,看看你是否适合去银行做程序员。

1. 是否能接受较低的工资,并且涨薪很慢(这是相比于互联网,如果和传统行业相比,工资还是可以的)?

2. 是否能接受较落后的技术栈,并且技术上的成长性(因为银行都是稳定为主,一般对技术要求并没有那么高)?

3. 是否能接受在职业晋升上会有论资排辈的情况存在?

4. 是否能接受国企那种人情世故的氛围?

5. 是否能接受在银行工作也可能会加班?

6. 是否能接受整天工作重复性极高,没什么难度,技术不会提高,并且可能会整天都很闲?

如果上面的银行信息 科技 岗的缺点你都能接受,那么银行信息 科技 岗还是挺适合你的。

源妹儿还整理了一份银行 IT 企业的名单,可以看看

银行 IT企业名单

0 1. 国有银行

0 2. 股份制银行

关于银行 科技 岗的分类

银行 科技 岗大概分为两类:

一类是银行的信息 科技 岗:这种岗位一般在省分行,大多数不咋敲代码,算是甲方,工资和普通银行员工差不多,不高,比如说中国工商银行浙江省分行信息 科技 岗。

另外一类是敲代码的,即研发岗: 例如上面提到的工行西安开发中心、中行西安软件中心等等。建行是自己的子公司建信金科,招行也是自己的子公司,招银网络 科技 。

这种银行的研发岗要求会高一些,待遇也还可以。中(国银行)农(业银行)工(商银行)建(设银行)交(通银行)邮(政储蓄银行)、招(商银)行、宁波银行、浦发(银行)、上海银行、这将农商行等这些大行都有研发岗位。

有小伙伴选择加入某行(求证后是农行天研)的研发岗位之前,也有两个互联网巨头的总包 offer(40W+),但最后还是没去互联网公司。 其实无论是互联网 IT,还是银行 IT,只要是适合自己的,都是好的选择。

关于银行 科技 岗的笔试和面试问题

下面说一说银行信息 科技 岗的笔试和面试都会问些什么。

注意:在说笔试和面试之前给大家提个醒,在投银行信息 科技 岗的简历时,将一些字多的东西复制到文档中,否则每投一个银行就重写一遍是非常浪费时间的。

笔试

银行的笔试内容还是比较多的,笔试内容大多是: 行测、英语、计算机基础、性格测试

1.行测 :这部分也挺恶心的,主要包括逻辑推理、言语理解、数字运算、逻辑判断、资料分析等,主要考察逻辑思维能力。

2.英语 :题型有阅读理解、单项选择、完型填空等等。

3.计算机基础 :主要是计算机的一些基础知识,C、Java、数据库、计算机网络、 *** 作系统、信息安全等等。

4.性格测试 :通常笔试最后是性格测试。

面试

一面,主要是技术面 ,会问些计算机的基础知识,Java、数据库、计算机网络、 *** 作系统等等,以及做过的一些项目。

二面, 有些银行仍然是半结构化面试(就是和一面一样,面试官问,你回答),有些银行则是会进行无领导小组面试,可能会有团队协作、主题辩论等形式,主要考察沟通能力、组织能力、团队协作能力。

上面说的是一些主流银行,还有一些银行如招银网络,笔试、面试、工作强度都和互联网类似,号称技术体系最强的银行。

注意:面试银行信息 科技 岗还需注意这个岗位进去需不需要轮岗(比如去干柜员),一般银行的市分行的信息 科技 岗就有可能需要轮岗,因为简单想想也知道他们没什么开发的任务,而银行的研发中心轮岗这种事就很少。

总结

在银行 科技 岗工作的发展路径源妹儿从两个角度给大家说明:

角度一: 无论是什么岗位都是银行的工作员工,都符合银行晋升工作路线,随着时间和经验的积累行员职级的晋升,基本工资逐年上涨。

角度二 :如果一直保持一线研发,自然专业能力和金融财务等知识能力会得到提升。如果做的基础性维护性工作比较多,那么可能实 *** 能力进步没有那么快。

最后,银行的加班情况没有列出来,实在难以统计,大多数是要看部门的。

看了这么多关于银行 科技 岗的分析,是不是觉得挺香的?

但具体还是那句话: 没有最好的选择,只有最适合自己的选择!

免责声明

*本文整理自网络,如有侵权请联系删除 *


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7899873.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存