宜信2019秋招数据挖掘岗笔试题
1.有一群人来某奇怪的办事处办理业务,所有人取过号(从小到大)之后,这个办事处突然希望能够按照年龄高低办理业务,但是同年龄的人按照之前所取号从小到大
办理业务,下面哪个排序算法不适合用在此处:()
A.归并排序
B.冒泡排序
C.快速排序
D.直接插入排序
2.由权值分别为1,26,5,9,12,16的叶子结点生成一个哈夫曼树,它的带权路径长度为:()
A.159
B.228
C.69
D.52
3.有8只球队,采用抽签的方式随机配对,组成4场比赛。假设其中有4只强队,那么出现强强对话(任意两个强队相遇)的概率是:()
A.27/35
B.31/35
C.3/7
D.13/21
4.小明想要过河,小明所在的河岸有木桩A,河流上有木桩B,对岸有木桩C,到达木桩C即可视为过河成功。木桩A上有一个发射按钮,按动按钮后小明会被
发射到木桩B,在木桩B上也有一个发射按钮,按动按钮后,木桩B有0.81的橄率将小明送回到木桩C,0.2的概率送到木桩C,问小明想要到达木桩C,按动
木桩A和木桩B的按钮次数和的期望是多少()
A.16
B.10
C.6
D.2
5.单层双向LSTM中,hidden size为64,如果输入的张量是
(seq_len,batch,input_size)=(50,32,128)
则最终输出的cell state的形状为()
A.(32, 50, 64)
B.(32,128,2)
C.(32,64,2)
D.(32, 50)
6.判断包含n个整数a[]中是否存在i,j,k,满足a[i]+a[j]=a[k]的时间复杂度为()
A.O(n)
B.O(n^2log(n))
C.O(nlog(n))
D.O(n^2)
7.把$N\times N$的二维数组X顺时针旋转90度,数组下标从0开始,X[i][j]在旋转后的新矩阵中的位置为:
A.X[j][i]
B.X[j][N-1-i]
C.X[N-1-j][N-1-i]
D.X[N-1-j][i]
8.执行以下程序后的结果为:
public class Test{
public static void main(String[] args){
StringBuffer a = new StringBuffer("A");
StringBuffer b = new StringBufer("B");
test(a,b);
System.out.println(a+","+b);
}
public static void test (StringBuffer x. StringBuffer y){
x.append(y);
y=x;
}
}
A.B,B
B.A,B
C.AB,B
D.A,A
9.关于SVM,以下说法正确的是:
A.SVM为凸优化问题,因此拉格朗日极小极大问题等价于极大极小问题
B.核支持向量的求解复杂度为O(n),n为训练样本个数
C.SVM超平面的建立只和落在边界(margin)内或边界上的样本点有关,与落在边界外的样本点无关
D.SVM的损失函数为合页损失函数,不可求导,因此利用对偶问题进行求解
10.很多模型中通常同时融合L1和L2两种范数,正则项形如: ,那么,此正则项的gradient(或sub gradient)是()
A.
B.
C.
D.
11.“过拟合”出现在:
A.无监督学习
B.监督学习和无监督学习
C.监督学习
12.在双向链表中,删除p元素需要做的操作是:
A.p->next->next=p->next;p->previous=p->previous;
B.p->previous->next=p->previous;p->next->previous=p->next;
C.p->previous->next=p->next;p->next->previous=p->previous;
D.p->previous->next=p->next->previous;p->next->previous=p->previous->next;
13.请问下面的程序将输出多少个“宜信”:
int main(void){
int i;
for(i=0;i<2;i++){
fork();
printf("宜信");
}
return 0;
}
A.5
B.8
C.7
D.6
14.填空
一个长度为7的哈希表,散列函数为H(k)=k%7,给定关键字序列{58,01,28,16,29},当用线性探测法等概率的清理乱管辖查找成功的平均长度为();
当用链式地址法等概率的情况下查找成功的平均查找长度()。
15.利用牛顿求解某一优化问题,在迭代的第k步中,海森矩阵为 ,梯度为 , 为该步的增量,求的一范数(结果保留三位小数)()。
16.下面两个程序事件复杂度分别是:
int fun1(int n)
{
if(n <= 1) return n;
return 2*fun1(n-1);
}
int fun2(int n){
if (n<=1) return n;
return fun2(n-1) + fun2(n-1);
}
17. 5.
6. 熟练掌握Linux下的静态库的制作和使用
7. 熟练掌握Linux下的共享库的制作和使用
银行坏账
时间限制:C/C十+语言1000Ms;其他语言3000MS
内存限制:C/C++语言65536KB;其他语言589824KB
题目描述:
银行有编号为1到W的W个贷款窗口,且每个窗口都有一个货款申请人。
现银行提供N种货款方式供给货款申请人,每个申请人可以选择其中一种
方式。如果相邻两个窗口的申请人的货款方式一样,则将可能产生坏账,
求有多少种状态可能产生坏账?
输入
两个整数N,W。其中1<=N<=10^8.,1<=W<10^12
输出
可能产生坏账的状态数除以100003后取余
样例输入
2 2
样例输出
2