2014年百度校园招聘深度学习算法研发工程师笔试题.doc
2014年百度校园招聘深度学习算法研发工程师笔试题今天上午到腾迅那里,没有叫到笔试通知,是去霸笔的。原本以为是可以霸笔的,因为像阿里,360等大公司都专门的考场给霸笔的人准备的,但是腾迅不是这样,只有两个很小教室给那些霸笔的人考试,一会就都占满了,太少了,还有一大批没收到通知人不让考试。参加腾迅笔试的也够火爆的,一条走廊全占满了人,都是霸笔的,等了半小时者不让进,太不厚道了。下午到百度的笔试,比腾迅大气多了,给那些霸笔的人提供了3个大教室,每个教室能容纳100多人,而且有专门的人安排座位。百度的职位真多啊,有一二十个,我选择的是B13深度学习算法研发工程师,一个教室还就我一个人选这个职位。试卷一发下来,我愣了,真难度也太大了,好多我见都没见过现将题目贡献如下:一、简答题1.深度神经网络目前有哪些成功的应用?简述原因。(10分) 2.列举不同进程共享数据的方式(至少三种)。(10分) 3.对于N个样本,每个样本为D维向量,采用欧式距离使用KNN做类预测。(10分)1).给出预测时间复杂度。2).当N很大时,有哪些方法可以降低复杂度?3).k取值的大小对预测方差和偏差有何影响? 二、算法和程序设计1.给出一个数据A=a_0, a_1, a-2, . a_n(其中n可变),打印出该数值元素的所有组合。(15分) 2.有这样一个数组A,大小为n,相邻元素差的绝对值都是1,如A=4,5,6,5,6,7,8,9,10,9。现在给定数组A和目标整数t,请找到t在数组中的位置。(15分) 3.在平面上有一组间距为d的平行线,将一根长度为l(l<d)的针任意掷在这个平面上,求此针与平行线中任意一根相交的概率,用高等数学(微积分、概率的方法)求解,基于布丰投针的结论,任选一种编程语言(C/C+, matlab, python, java),写出模拟投针实验(程序中允许把一个理想的Pi作为常量使用),求解圆周率。(15分) 三、系统设计题(两题中任选一题作答,25分) 2.关于K-means聚类算法,请回答以下问题:1).写出将N个样本X=(x1, . xN)聚类成k类的k_means聚类算法的优化目标;2).描述K-means终止的常用条件;3).以Kmeans算法为例,描述Expectation-Maximization(EM)算法的基本原理与步骤。4).用伪代码给出基于MPI或者HADOOP的Kmeans并行算法。 我的部分解答:二、(2)java view plaincopyprint?1. public static int find(int a, int t) 2. int i=0; 3. while(i<a.length) 4. if(t = ai) 5. return i; 6. else 7. i += Math.abs(t - ai); 8. 9. 10. return -1; 11. 12. 13. public static void main(String args) 14. int a = 4,5,6,5,6,7,8,9,10,9; 15. System.out.println(find(a, 7); 16.