2016网易暑期实习生笔试题

这篇博客回顾了2016年网易暑期研发实习生的笔试,涵盖编程题(如求质数、字符串编码)和简答题,包括VR技术的应用、有监督与无监督分类的机器学习概念,以及个人实习经验的分享。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

报的是研发工程实习生,抱着水一水的心态参加了(因为自己需要提高的地方实在太多...),意外接到了面试的通知,所以想在面试前把笔试题目整理一下...

先是选择题若干,感觉最多能对三分之一吧....涉及到了C++,计算机网络,数据库,操作系统,多线程等等。然后是编程与简答:

编程题

1.    求质数

C语言课本里的题目…就不再细说了…

2.    字符串编码:

大写,A~Z排列,如“AABBBC”编码为“2A3BC”(‘1’不显示),代码如下:

#include<iostream>

#include<string>

#include<map>

 

using namespace std;

map<char,int> encode(string str);

void printStr(map<char,int> code);

 

int main(){

       stringtest;

       while(cin>>test){

              map<char,int>code = encode(test);

              printStr(code);

       }

       return0;

}

 

map<char,int> encode(string str)

{

       map<char,int>code; //关键字是第一个元素,值是第二个(关键字是唯一的),笔试时这里弄错了,死活调不出来...

       for(inti=0;i<str.size();i++){

              if(i==0){

                     code[str[i]]= 1;

                     continue;

              }

              if(str[i]==str[i-1])code[str[i]]++;//若不是第一次出现,关键字对应的值加1

              elsecode[str[i]] = 1; //若是第一次出现,加入map

       }

       returncode;

}

 

void printStr(map<char,int> code)

{

       map<char,int>::iteratorit;

       for(it=code.begin();it!=code.end();it++){

              if(it->second!=1)cout<<it->second;

              cout<<it->first;

       }

       cout<<endl;

}


简答题

1.    VR与各种技术的结合

(1)  虚拟现实技术的发展

参考:

Ø  http://mt.sohu.com/20160209/n437154398.shtml

Ø  http://baike.baidu.com/link?url=BrjOwY69iAcaxTEZnIJ_qfjKzpkWZzp8l2l5GwY7Jdu0yaYxS_Qfqw7dnDkb9Anw-ZG7zZ9h-DU2yGyW-pVol4n1wx6KfdCa7wTqioxJRbG2wpv1kxJdRTkfw5E9-GvP2illFLD82V4TzCVGvm4eshEhuzruuJYfMF6s4O7Ef8LR117rFWu-0gn1vAC80l2_YZkHEZN9iKvvr1U7U4NWgq

(2)  虚拟现实技术与各种技术的结合点

应该是为了考察创新能力,让人描述一下VR与计算机图形学、语音识别、图像处理等技术的结合点,可以看看http://www.huxiu.com/article/42570/1.html,没有做不到,只有想不到~

2.    有监督分类与无监督分类

(1)  SVM

(当时做这道题时写的是感知器,因为虽然用过SVM,但只是调用libsvm的API,汗颜==所以在这里把SVM简要学习一下)

SVM是一种二类分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器。可以利用核技巧使其成为非线性分类器,等价于隐式地在高维的特征空间中学习线性支持向量机。

Ø  线性可分支持向量机

假设训练数据集是线性可分的,学习的目标是在特征空间中找到一个分离超平面,能将实例分到不同的类。一般情况下,存在无穷多个这样的超平面,为了得到唯一最优解,利用间隔最大化准则求解最优分离超平面。

所以,线性SVM基本思想:求解能够正确划分训练数据集并且几何间隔最大的分离超平面

函数间隔:超平面(w,b)关于T中所有样本点(xi,yi)的函数间隔的最小值。

几何间隔:对函数间隔加以约束,||w||=1.(w,b成比例变化,它不变)

间隔最大化的直观解释:对训练数据集找到几何间隔最大的超平面意味着以充分大的确信度对训练数据进行分类。也就是说,不仅将正负实例点分开,而且对最难分的实例点(离超平面最近的点),也有足够大的确信度将它们分开。

可以转化为一个凸二次规划问题。(凸优化?目标函数和约束函数都是连续可微的凸函数)

Ø  非线性支持向量机与核函数

非线性可分问题:能用一个超曲面将正负例正确分开。

非线性SVM基本思想:使用一个非线性变换将原空间中的数据映射到新空间,然后在新空间用线性分类学习方法从训练数据中学习分类模型。(原空间中的超曲面对应于新空间中的超平面)。

具体实现:内积->核函数。

(2)  Kmeans

略略略

(3)  有监督分类和无监督分类的区别

有监督分类:

优点:可充分利用样本的先验知识;

缺点:耗费人力和时间。

无监督分类:

优点:无需进行样本的标记;

缺点:无法确认类别的真实数目

3.    描述自己的实习/项目经历

在公司里主要接手了两个项目,一个是关于深度相机的,另一个是关于文本检测与识别的,这里就不说太详细了…最大的收获是进一步提高了独立解决问题的能力,然而离开的原因也是这点,毕竟新手还是需要团队的培养的,否则会走很多弯路,出成果也慢的多==所以计划近几年再也不去创业公司了,可能那种环境更适合大牛~