阿里巴巴2016 实习生招聘练习题(二)

1、阿里巴巴国际站的股票代码是1688,这个数字具有这样的特性,首先是个首位为1的4位数,其次恰巧有且仅有1个数字出现了两次。类似的数字还有:1861,1668等。这样的数字一共有()个。

答案:432

分析:分两种情况讨论:
(1)若这个四位数的重复数字为1,那么首先从三个空位中选出一个给1,第二步从剩下9个可选数字中选出2个有序的排列到剩下的两个空位中去,那么有C(1,3) *A(2,9)=3*(9!/(9-2)!)=3*9*8=216种可能;
(2)若这个四位数的重复数字不为1,那么首先从9个可选数字中选出一个作为重复数字(C(1,9)),并放到三个空位中的两个(这两个数字相同,故只涉及组合)(C(2, 3)),然后从剩下8个数字中选出一个(它的位置在重复数字确定后就自然固定了,不可选)即可,故有C(1,9)*C(2, 3)*C(1, 8)=216种可能。 总共:216+216=432

2、由权值分别为1、12、13、4、8的叶子节点生成一颗哈夫曼树,它的带权路径长度为()

答案:81

分析: 38

​ 13 25

​ 12 13

​ 5 8

​ 1 4

13 * 1 + 12 * 2 + 8 * 3 + 1 * 4 + 4 * 4 =81

3、n个数值选出最大m个数(3< m < n)的最小算法复杂度是O(n)

解法1:基于数组的第m个数字调整,小于的都位于数组的左边,大的都位于右边。 O(n)

解法2:创建一个大小为k的数据容器存储最大m个数,将这m个数按小顶堆排序 O(logm) ,将剩下的m+1~n个数分别和小顶堆中的最小值比较和替换。 O(nlogm)

4、下面哪一个不是动态链接库的优点?B

A共享

B装载速度快

C开发模式好

D减少页面交换

- 优点 缺点
静态链接库 (1) 代码装载速度快,执行速度略比动态链接库快; (2) 只需保证在开发者的计算机中有正确的.LIB文件,在以二进制形式发布程序时不需考虑在用户的计算机上.LIB文件是否存在及版本问题,可避免DLL地狱等问题。 使用静态链接生成的可执行文件体积较大,包含相同的公共代码,造成浪费;
动态链接库 (1) 更加节省内存并减少页面交换;(2) DLL文件与EXE文件独立,只要输出接口不变(即名称、参数、返回值类型和调用约定不变),更换DLL文件不会对EXE文件造成任何影响,因而极大地提高了可维护性和可扩展性;(3) 不同编程语言编写的程序只要按照函数调用约定就可以调用同一个DLL函数;(4)适用于大规模的软件开发,使开发过程独立、耦合度小,便于不同开发者和开发组织之间进行开发和测试。 使用动态链接库的应用程序不是自完备的,它依赖的DLL模块也要存在。如果使用载入时动态链接,程序启动时发现DLL不存在,系统将终止程序并给出错误信息;使用运行时动态链接,系统不会终止,但由于DLL中的导出函数不可用,程序会加载失败;当某个模块更新后,如果新模块与旧的模块不兼容,那么那些需要该模块才能运行的软件,统统死掉。
5、下列不是进程间的通信方式的是(B)

A管道

B回调(一种编程机制)

C共享内存

D消息队列

E socket

F信号量

分析:进程间的通信方式:

  • 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。
  • 信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。
  • 消息队列( message queue ) : 消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。
  • 共享内存( shared memory ) :共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号量配合使用,来实现进程间的同步和通信。
  • 套接字( socket ) : 套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同及其间的进程通信。
6、已知IBM的PowerPC是big-endian字节序列而Intel的X86是little-endian字节序,如果在地址啊存储的整形值时0x04030201,那么地址为a+3的字节内存储的值在PowerPC和Intel X86结构下的值分别是?

答案:1 4

分析:数据在内存中的存储方式(Big Endian和Little Endian的区别)

Endian-字节序

Big -大端。在大端模式中,低位字节放在高地址,高位字节放在低地址。

Little -小端。在小端模式中,低位字节放在低地址,高位字节放在高地址;

如果将一个16位的整数0x1234存放到一个短整型变量(short)中。这个短整型变量在内存中的存储在大小端模式由下表所示。

地址偏移 大端模式Big Endian 小端模式Little Endian
0x00 12 34
0x01 34 12
7、在Logistic Regression 中,如果同时加入L1和L2范数,会产生什么效果(A)

A可以做特征选择,并在一定程度上防止过拟合

B能解决维度灾难问题

C能加快计算速度

D可以获得更准确的结果

分析:

L1范数是指向量中各个元素绝对值之和,用于特征选择;

L2范数是指向量各元素的平方和然后求平方根,用于 防止过拟合,提升模型的泛化能力

8、下面关于B-和B+树的叙述中,不正确的是

正确答案 :C

A B-树和B+树都是平衡的多叉树

B B-树和B+树都可用于文件的索引结构

C B-树和B+树都能有效地支持顺序检索( B-树不支持)

D B-树和B+树都能有效地支持随机检索

B-树
阿里巴巴2016 实习生招聘练习题(二)_第1张图片

B+树

阿里巴巴2016 实习生招聘练习题(二)_第2张图片

9、在分类问题中,我们经常会遇到正负样本数据量不等的情况,比如正样本为10w条数据,负样本只有1w条数据,以下最合适的处理方法是(A)

A 将负样本重复10次,生成10w样本量,打乱顺序参与分类

B直接进行分类,可以最大限度利用数据

C从10w正样本中随机抽取1w参与分类

D将负样本每个权重设置为10,正样本权重为1,参与训练过程

分析:解决这类问题主要分重采样、欠采样、调整权值

重采样。A可视作重采样的变形。改变数据分布消除不平衡,可能导致过拟合。
欠采样。C提高少数类的分类性能,可能丢失多数类的重要信息。
权值调整。D是其中一种方式。

10、以下几种模型方法属于判别式模型的有(2 + 3)

1)混合高斯模型

2)条件随机场模型

3)区分度训练

4)隐马尔科夫模型

生成式模型 (一般来说, 生成式模型都会对数据的分布做一定的假设)

  • 判别式分析
  • 朴素贝叶斯
    • 朴素贝叶斯分类器基于一个简单的假定:给定目标值时属性之间相互条件独立。
    • 最为广泛的两种分类模型是决策树模型(Decision Tree Model)和朴素贝叶斯模型(Naive Bayesian Model,NBM)
  • K近邻(KNN)
  • 混合高斯模型
  • 隐马尔科夫模型(HMM)
    • HMM(隐马尔可夫模型)是用来描述隐含未知参数的统计模型。举一个经典的例子:一个东京的朋友每天根据天气{下雨,天晴}决定当天的活动{公园散步,购物,清理房间}中的一种,我每天只能在twitter上看到她发的“啊,我前天公园散步、昨天购物、今天清理房间了!”,那么我可以根据她发的推断东京这三天的天气。在这个例子里,显状态是活动,隐状态是天气
  • 贝叶斯网络
  • Sigmoid Belief Networks
  • 马尔科夫随机场(Markov Random Fields)
  • 深度信念网络(DBN)

判别式模型

  • 线性回归(Linear Regression)
  • 逻辑斯蒂回归(Logistic Regression)
  • 神经网络(NN)
  • 支持向量机(SVM)
  • 高斯过程(Gaussian Process)
  • 条件随机场(CRF)
  • CART(Classification and Regression Tree)
11、B-树的插入算法中,通过结点的向上”分裂”,代替了专门的平衡调整(对)

B-树相关链接

12、下面有关序列模式挖掘算法的描述,错误的是?

正确答案 :C

A AprioriAll算法和GSP算法都属于Apriori类算法,都要产生大量的候选序列

B FreeSpan算法和PrefixSpan算法不生成大量的候选序列,不需要反复扫描原数据库

C 在时空的执行效率上,FreeSpan比PrefixSpan更优

D 和AprioriAll相比,GSP的执行效率比较高

分析:

AprioriAll

GSP(generalized sequential pattern)算法是AprioriAll算法的扩展算法,其算法的执行过程和AprioriAll类似,最大的不同在于GSP引入了时间约束、滑动时间窗和分类层次技术,增加了扫描的约束条件,有效地减少了需要扫描的候选序列的数量。此外GSP利用哈希树来存储候选序列,减少了需要扫描的序列数量。

FreeSpan

PrefixSpan是FreeSpan的改进算法

4种序列模式挖掘算法的比较分析

13、如下表是用户是否使用某产品的调查结果(学历)
UID 年龄 地区 学历 收入 用户是否使用调查产品
1 北方 博士
2 北方 本科
3 南方 本科
4 北方 研究生

请计算年龄,地区,学历,收入中对用户是否使用调查产品信息增益最大的属性(Log23≈0.63)

分析:信息增益通俗讲就是指区分度。如果对于一个属性,其结果都是等概率出现的,即信息熵为1,信息增益为0,那么这个属性就没有任何区分度,无实际意义。就像本题中年龄一样,年龄高的的人是否接受调查的人都是1/2,年龄低的人是否接受调查的人也分别占1/2,那么年龄属性没有任何实际意义。

14、 类域界面方程法中,不能求线性不可分情况下分类问题近似或精确解的方法是(B)

A伪逆法

B感知器算法

C基于二次准则的H-K算法

D势函数法

解析:线性分类器的设计就是利用训练样本集建立线性判别函数式,也就是寻找最优的权向量的过程。求解权重的过程就是训练过程,训练方法的共同点是,先给出准则函数,再寻找是准则函数趋于极值的优化方法。

A、B、C方法都可以得到线性不可分情况下分类问题近似解。感知器可以解决线性可分的问题,但当样本线性不可分时,感知器算法不会收敛。

判别域代数界面方程法

15、下面有关分类算法的准确率,召回率,F1值的描述,错误的是?

正确答案 :C

A准确率是检索出相关文档数与检索出的文档总数的比率,衡量的是检索系统的查准率

B召回率是指检索出的相关文档数和文档库中所有的相关文档数的比率,衡量的是检索系统的查全率

C正确率、召回率和 F 值取值都在0和1之间,数值越接近0,查准率或查全率就越高

D为了解决准确率和召回率冲突问题,引入了F1分数

分析: 准确率和召回率是互相影响的,理想情况下肯定是做到两者都高,但是一般情况下准确率高、召回率就低,召回率低、准确率高,为了解决准确率和召回率冲突问题,引入了F1 = 2 * P * R / (P + R)

16、以下哪个是常见的时间序列算法模型

正确答案 :C

A RSI

B MACD

C ARMA

D KDJ

一个时间序列是一组对于某一变量连续时间点或连续时段上的观测值。

移动平均法 (Moving Average,MA)

自回归(auto Regressive,AR)

GARCH模型–较好地拟合波动性的分析和预测

17、在图G的最小生成树G1中,可能会有某条边的权值超过未选边的权值(对)

一个连通图的生成树是一个极小的连通子图,含有图中所有顶点,但只有足以构成一棵树的n-1条边,把代价最小的生成树称为最小生成树。找最小生成树的算法有:

普里姆算法prim算法, 适合稠密图,时间复杂度为O(n^2), 与边的数目无关,

克鲁斯克尔kruskal算法,适合稀疏图,时间复杂度为O(eloge),跟边的数目(e)有关,

算法中需要避免环路,因此可能会有某条边的权值超过未选边的权值

18、关于支持向量机SVM,下列说法错误的是()

正确答案 :C

A L2正则项,作用是最大化分类间隔,使得分类器拥有更强的泛化能力

B Hinge 损失函数(还有平方hinge损失函数),作用是最小化经验分类错误

C 分类间隔为1/||w||,||w||代表向量的模

D 当参数C越小时,分类间隔越大,分类错误越多,趋于欠学习

分析:最大化间隔(如 L2正则项)和容忍异常样本,并且引入一个平衡参数 C (C≥0)来衡量这两个方面的重要程度。

相关链接

你可能感兴趣的:(刷题,阿里巴巴,招聘)