15 个 Google 面试问题和答案
关键字:谷歌 Google 面试
第一题:多少只高尔夫球才能填满一辆校车?(职位:产品经理)
解析:通过这道题,谷歌希望测试出求职者是否有能力判断出解决问题的关键。
网友的答案:我想,一辆标准大小的校车约有8英尺宽、6英尺高、20英尺长——我能知道这些数字完全是因为我曾经无数次被堵在校车后面。
据此估算,一辆校车的容积约为960立方英尺,也就是160万立方英寸。一个高尔夫球的半径约为0.85英寸,我认为一个高尔夫球的体积约为2.6立方英寸。
用校车的容积除以高尔夫球的体积,得到的结果是66万。不过,由于校车里面还有座位等等各种东西,而且高尔夫球的形状使得不同的球之间会有不少空隙。我的最终估算结果是50万。这听起来有些荒唐。如果我直接猜的话,我给出的答案肯定是10万以下,不过我相信我的数学水平。
当然,如果这里的校车是小布什当年坐过的那种,结果还要除以2,差不多是25万个。
第二题:让你清洗西雅图所有的玻璃窗,你的报价是多少?(职位:产品经理)
答案:这一题我们可以玩点花招,我们的答案是“每扇窗10美元”。
第三题:有一个人们只想生男孩子的国家,他们在有儿子之前都会继续生育。如果第一胎是女儿,他们就会继续生育直到有一个儿子。这个国家的男女儿童比例是多少?(职位:产品经理)
答案:这一题引发了不少争议,不过我们发现,这一题的解答步骤如下:
1、假设一共用10对夫妻,每对夫妻有一个孩子,男女比例相等。(共有10个孩子,5男5女);
2、生女孩的5对夫妻又生了5个孩子,男女比例相等。(共有15个孩子,男女儿童都是7.5个);
3、生女孩的2.5对夫妻又生了2.5个孩子,男女比例相等。(共有17.5个孩子,男女儿童都是8.75个);
4、因此,男女比例是1:1。
第四题:全世界共有多少名钢琴调音师?(职位:产品经理)
答案:我们的回答是“要看市场情况。如果钢琴需要每周调音一次,每次调音需要1个小时,且每个调音师每周工作40个小时。我们认为每40台钢琴就需要一名调音师。”
这个问题又被称为“费米问题”(Fermi problem)。费米提出的问题是“在芝加哥有多少钢琴调音师”。一个典型的答案是包括一系列估算数据的乘法。如果估计正确,就能得到正确答案。比如我们采用如下假设:
芝加哥约有500万人居住;
平均每个家庭有2人;
大约有1/20的家庭有定期调音的钢琴;
平均每台钢琴每年调音一次;
每个调音师调整一台钢琴需要2小时;
每个调音师每天工作8小时、每周5天、每年50周。
通过这些假设我们可以计算出每年在芝加哥需要调音的钢琴数量是:
(芝加哥的500万人口)/(2人/家)×(1架钢琴/20家)×(1架钢琴调整/1年)=125000
平均每个调音师每年能调整的钢琴数量是:
(50周/年)×(5天/周)×(8小时/天)/(1架钢琴/2小时)=1000
芝加哥的调音师数量是:
(芝加哥需要调音的钢琴数量125,000)/(每个调音师每年能调整的钢琴数量1000)=125
第五题:马路上的井盖为什么是圆的?(职位:软件工程师)
答案:圆形的井盖在任何角度都不会掉下去。
第六题:为旧金山市设计一个紧急撤离方案(职位:产品经理)
答案:这又是一个考察求职者是否能够发现问题核心的题目。我们在回答之前首先要问的是,“撤离方案应对的是什么样的灾难”。
第七题:一天之中,时钟的时针和分钟会重合几次?(职位:产品经理)
答案:22次。
重合的时间点分别是:上午,12:00、1:05、2:11、3:16、4:22、5:27、6:33、7:38、8:44、9:49、10:55;下午12:00、1:05、2:11、3:16、4:22、5:27、6:33、7:38、8:44、9:49、10:55。
第八题:请阐述“Dead beef”的意义。(职位:软件工程师)
答案:网友给出的正确答案是,在大型机和汇编语言的时代,“DEADBEEF”是调试计算机时所使用的一个十六进制值,以便于在大量的十六进制中断信息中标记和查找特定的内存数据。大多数计算机科学专业毕业生都应该会在汇编语言的课程上见过这个概念。
第九题:有人把车停在旅馆外,丢失了他的财物,他接下来会干什么?(职位:软件工程师)
答案:下车踏到人行道上。
第十题:你需要确认朋友鲍勃是否有你正确的电话号码,但不能直接问他。你须在一张卡片上写下这个问题,然后交给爱娃,由爱娃把卡片交给鲍勃,再转告你答案。除了在卡片上写下这个问题外,你还必须怎样写,才能确保鲍勃在给出答案的同时,不让爱娃知道你的电话号码?(职位:软件工程师)
答案:既然只需要核对鲍勃手中的号码是否正确,你只需要让他在某个特定的时刻给你打电话,如果他没打过来的话,就能确认他没有你的号码。
第十一题:假设你是海盗船的船长,船员们即将对黄金的分配方案投票。如果赞成票不到半数的话,你会被杀死。你怎样才能在保证自己存活的情况下拿到最多的黄金?(职位:软件工程师)
答案:将黄金平均分给最有权势的51%的船员。
第十二题:有八个大小相等的球,其中有一个重量比其他球略重。如何在只用天平称两次的情况下找出那个不一样的球?(职位:产品经理)
答案:从八个球中取出六个,在天平两边各放三个。如果平衡,把剩下的两个球分别放在天平两边,就能找出较重的球。如果不平衡,较重的球就在天平下沉的一边,从这三个当中取出两个称量,若不平衡,下沉的一边较重,若平衡,剩下的就是较重的球。
第十三题:你拿着两个鸡蛋站在100层的大楼上。鸡蛋或许结实到从楼顶掉下也不会摔破,或许很易碎,在一楼摔下就破碎。最少试验多少次可以找出鸡蛋不会被摔碎的最高楼层?(职位:产品经理)
答案:14次。从14楼丢下第一颗鸡蛋,如果破碎了就逐层往下试验,共需14次。如果没有破碎,往上走13层;在27楼第二次丢下第一颗鸡蛋,如果碎了,换第二颗鸡蛋往上走12曾测试,若仍没碎,往上走12层试验第一颗鸡蛋;以此类推,直到走到第99层。如果鸡蛋要到100层高度落下才会破碎,总共需要14次尝试。
第十四题:如果用三句话向你8岁大的侄子解释什么叫数据库?(职位:产品经理)
答案:这一题考察的是求职者用简单的语言阐述复杂概念的能力。我们的答案是“数据库是一个能够记住关于很多东西的很多信息的机器。人们用它来帮助记住这些信息。出去玩吧。”
第十五题:你被缩小到只有硬币厚度那么点高,然后被扔到一个空的玻璃搅拌机中,刀片一分钟后就开始转动。你会怎么做?(职位:产品经理)
答案:这一题考察的是求职者的创造性。我们会尝试把电动机弄坏。
推荐阅读
-
10 个经典图像处理面试问题(附答案)!
-
10 SQL 高级 -- 综合练习题 -- 10 个经典 SQL 问题,附带数据和答案
-
50 个 Python 面试基本问题汇总(附答案)
-
正负偏差变量 即 d2+、d2- 分别表示决策值中超出和未达到目标值的部分。而 di+、di- 均大于 0 刚性约束和目标约束(柔性目标约束有偏差) 在多目标规划中,>=/<= 在刚性约束中保持不变。当需要将约束条件转换为柔性约束条件时,需要将 >=/<= 更改为 =(因为已经有 d2+、d2- 用来表示正负偏差),并附加上 (+dii-di+) 注意这里是 +di、-di+!之所以是 +di,-di+,是因为需要将目标还原为最接近的原始刚性约束条件 优先级因素和权重因素 对多个目标进行优先排序和优先排序 目标规划的目标函数 是所有偏差变量的加权和。值得注意的是,这个加权和都取最小值。而 di+ 和 dii- 并不一定要出现在每个不同的需求层次中。具体分析需要具体问题具体分析 下面是一个例子: 题目中说设备 B 既要求充分利用,又要求尽可能不加班,那么列出的时间计量表达式即为:min z = P3 (d3- + d3 +) 使用 + 而不是 -d3 + 的原因是:正负偏差不可能同时存在,必须有 di+di=0 (因为判定值不可能同时大于目标值和小于目标值),而前面是 min,所以只要取 + 并让 di+ 和 dii- 都为正值即可。因此,得出以下规则: 最后,给出示例和相应的解法: 问题:某企业生产 A 和 B 两种产品,需要使用 A、B、C 三种设备。下表显示了与工时和设备使用限制有关的产品利润率。问该企业应如何组织生产以实现下列目标? (1) 力争利润目标不低于 1 500 美元; (2) 考虑到市场需求,A、B 两种产品的生产比例应尽量保持在 1:2; (3)设备 A 是贵重设备,严禁超时使用; (4)设备 C 可以适当加班,但要控制;设备 B 要求充分利用,但尽量不加班。 从重要性来看,设备 B 的重要性是设备 C 的三倍。 建立相应的目标规划模型并求解。 解:设企业生产 A、B 两种产品的件数分别为 x1、x2,并建立相应的目标计划模型: 以下为顺序求解法,利用 LINGO 求解: 1 级目标: 模型。 设置。 variable/1..2/:x;! s_con_num/1...4/:g,dplus,dminus;!所需软约束数量(g=dplus=dminus 数量)及相关参数; s_con(s_con_num);! s_con(s_con_num,variable):c;!软约束系数; 结束集 数据。 g=1500 0 16 15. c=200 300 2 -1 4 0 0 5; 结束数据 min=dminus(1);!第一个目标函数;!对应于 min=z 的第一小部分;! 2*x(1)+2*x(2)<12;!硬约束 @for(s_con_num(i):@sum(variable(j):c(i,j)*x(j))+dminus(i)-dplus(i)=g(i)); !使用设置完成的数据构建软约束表达式; ! !软约束表达式 @for(variable:@gin(x)); !将变量约束为整数; ! 结束 此时,第一级目标的最优值为 0,第一级偏差为 0: 第二级目标: !求 dminus(1)=0,然后求解第二级目标。 模型。 设置。 变量/1..2/:x;!设置:变量/1..2/:x; ! s_con_num/1...4/:g,dplus,dminus;!软约束数量及相关参数; s_con(s_con_num(s_con_num));! s_con(s_con_num,variable):c;! 软约束系数; s_con(s_con_num,variable):c;! 结束集 数据。 g=1500 0 16 15; c=200 300 2 -1 4 0 0 5; 结束数据 min=dminus(2)+dplus(2);!第二个目标函数 2*x(1)+2*x(2)<12;!硬约束 @for(s_con_num(i):@sum(variable(j):c(i,j)*x(j))+dminus(i)-dplus(i)=g(i)); ! 软约束表达式;! dminus(1)=0; !第一个目标结果 @for(variable:@gin(x)); ! 结束 此时,第二个目标的最优值为 0,偏差为 0: 第三目标 !求 dminus(2)=0,然后求解第三个目标。 模型。 设置。 变量/1..2/:x;!设置:变量/1..2/:x; ! s_con_num/1...4/:g,dplus,dminus;!软约束数量及相关参数; s_con(s_con_num(s_con_num));! s_con(s_con_num,variable):c;! 软约束系数; s_con(s_con_num,variable):c;! 结束集 数据。 g=1500 0 16 15; c=200 300 2 -1 4 0 0 5; 结束数据 min=3*dminus(3)+3*dplus(3)+dminus(4);!第三个目标函数。 2*x(1)+2*x(2)<12;!硬约束 @for(s_con_num(i):@sum(variable(j):c(i,j)*x(j))+dminus(i)-dplus(i)=g(i)); ! 软约束表达式;! dminus(1)=0; !第一个目标约束条件; ! dminus(2)+dplus(2)=0; !第二个目标约束条件 @for(variable:@gin(x));! 结束 最终结果为 x1=2,x2=4,dplus(1)=100,最优利润为
-
五个最新的 PHP+Swoole/Go 面试问题(附答案)
-
收藏夹!6 个常见的 hadoop 面试问题及答案解析
-
2020 年更新:100 个前端面试问题及答案(上)
-
Python 学习从入门到精通:行和缩进(3),2024 个华为面试问题
-
20 个必知的 PHP 基础面试问题(附答案)
-
分享 2023 年最新的 28 个 PHP 面试问题(附答案)